Alessandro Pieve 2016-12-01 17:19:52 +00:00
parent 32c7ea5ac6
commit f474215182
1 changed files with 43 additions and 1 deletions

View File

@ -515,7 +515,49 @@ implements AuthManagerService {
ServiceAccess service=new ServiceAccess(policy.getService().getServiceName(), policy.getService().getServiceClass(), policy.getService().getServiceId());
logger.info("updatePolicy -policy.getCallerAsString()"+policy.getCallerAsString());
Action access =Action.valueOf(policy.getAccessString());
policies.add(new User2ServicePolicy(context, service, Users.one(policy.getCallerAsString()), access ));
if (policy.getCallerTypeAsString().equalsIgnoreCase(TypeCaller.user.toString())){
logger.debug("add policy with user");
policies.add(new User2ServicePolicy(context, service, Users.one(policy.getCallerAsString()), access ));
}
else if (policy.getCallerTypeAsString().equalsIgnoreCase(TypeCaller.role.toString())){
logger.debug("add policy with role");
policies.add(new User2ServicePolicy(context, service, Roles.one(policy.getCallerAsString()), access ));
}
else if (policy.getCallerTypeAsString().equalsIgnoreCase(TypeCaller.service.toString())){
logger.debug("add policy with service");
String[] policyService=policy.getCallerAsString().split(":");
String serviceName=policyService[0].trim();
String serviceClass=policyService[1].trim();
String serviceId="All";
if (policyService.length==3)
serviceId=policy.getCallerAsString().split(":")[2];
ServiceAccess serviceCaller =new ServiceAccess(serviceName, serviceClass, serviceId);
policies.add(new Service2ServicePolicy(context,service,Services.specialized(serviceCaller),access));
}
else{
String[] allExecpt=policy.getCallerTypeAsString().trim().split(" ");
if (allExecpt.length>0){
if (allExecpt[0].equalsIgnoreCase(TypeCaller.user.toString())){
logger.debug("add policy with user execpt");
policies.add(new User2ServicePolicy(context, service, Users.allExcept(policy.getCallerExecptAsString()), access ));
}
else if (allExecpt[0].equalsIgnoreCase(TypeCaller.role.toString())){
logger.debug("add policy with role execpt");
policies.add(new User2ServicePolicy(context, service, Roles.allExcept(policy.getCallerExecptAsString()), access ));
}
else{
logger.error("ERROR caller type not recognized"+allExecpt[0]);
throw new TypeCallerException("Caller type not found");
}
}
else{
logger.error("ERROR caller type not recognized"+policy.getCallerTypeAsString());
throw new TypeCallerException("Caller type not found");
}
}
//policies.add(new User2ServicePolicy(context, service, Users.one(policy.getCallerAsString()), access ));
authorizationService().addPolicies(policies);
} catch (ServiceException e) {