public ValidationResponse validateModel(ValidationRequest<Configuration> request) {
ValidationResponse response = new ValidationResponse();
response.setContext(new SecurityValidationContext());
Configuration model = (Configuration) request.getConfiguration();
SecurityValidationContext context = (SecurityValidationContext) response.getContext();
List<CPrivilege> privs = model.getPrivileges();
if (privs != null) {
for (CPrivilege priv : privs) {
response.append(validatePrivilege(context, priv, false));
}
}
List<CRole> roles = model.getRoles();
if (roles != null) {
for (CRole role : roles) {
response.append(validateRole(context, role, false));
}
}
response.append(validateRoleContainment(context));
List<CUser> users = model.getUsers();
if (users != null) {
for (CUser user : users) {
Set<String> roleIds = new HashSet<String>();
for (CUserRoleMapping userRoleMapping : (List<CUserRoleMapping>) model.getUserRoleMappings()) {
if (userRoleMapping.getUserId() != null && userRoleMapping.getUserId().equals(user.getId())
&& (DEFAULT_SOURCE.equals(userRoleMapping.getSource()))) {
roleIds.addAll(userRoleMapping.getRoles());
}
}
response.append(validateUser(context, user, roleIds, false));
}
}
List<CUserRoleMapping> userRoleMappings = model.getUserRoleMappings();
if (userRoleMappings != null) {
for (CUserRoleMapping userRoleMapping : userRoleMappings) {
response.append(this.validateUserRoleMapping(context, userRoleMapping, false));
}
}