use of org.onebusaway.admin.model.role.Role in project onebusaway-application-modules by camsys.
the class AccessControlServiceImpl method init.
@PostConstruct
private void init() throws Exception {
roleByName = new ConcurrentHashMap<String, Role>();
List<Map<String, String>> settings = _configurationServiceClient.getItems("config", "list");
if (settings == null)
throw new Exception("No configuration supplied");
for (Map<String, String> setting : settings) {
if ((setting.containsKey("component") && privilegeComponent.equals(setting.get("component"))) && setting.containsKey("key")) {
String roleName = setting.get("key");
String privListString = setting.get("value");
if (privListString.equals("*")) {
Role role = new Role(roleName, null);
roleByName.put(roleName, role);
continue;
}
Set<Privilege> privileges = new HashSet<Privilege>();
for (String privName : privListString.split(",")) {
Privilege priv = new Privilege(privName);
privileges.add(priv);
}
Role role = new Role(roleName, privileges);
roleByName.put(roleName, role);
}
}
}
use of org.onebusaway.admin.model.role.Role in project onebusaway-application-modules by camsys.
the class AccessControlServiceImpl method userHasPrivilege.
@Override
public boolean userHasPrivilege(User user, Privilege privilege) {
if (user == null) {
// anonymous user
Role role = roleByName.get(StandardAuthoritiesService.ANONYMOUS);
return roleHasPrivilege(role, privilege);
}
Set<UserRole> roles = user.getRoles();
for (UserRole userRole : roles) {
Role role = roleByName.get(userRole.getName());
if (role == null)
_log.info("No privileges found for role " + userRole.getName());
else if (role.hasAllPrivileges() || (privilege != null && roleHasPrivilege(role, privilege))) {
_log.debug(userRole.getName() + " has privileges for " + privilege.getName());
return true;
}
}
_log.warn("Auth failed for " + user + ", " + privilege);
return false;
}
Aggregations