private Subject createSubject(Realm realm, Principal principal) { TomcatUser tomcatUser = new TomcatUser(realm, principal); HashSet<Principal> principals = new HashSet<Principal>(); principals.add(tomcatUser); Subject subject = new Subject(true, principals, new HashSet(), new HashSet()); return subject; }
public Set<String> getLogicalRoles(final Principal[] principals, final Set<String> logicalRoles) { final Set<String> roles = new LinkedHashSet<String>(logicalRoles.size()); for (final String logicalRole : logicalRoles) { for (final Principal principal : principals) { if (principal instanceof TomcatUser) { final TomcatUser user = (TomcatUser) principal; if (TomcatHelper.hasRole(user.getRealm(), user.getTomcatPrincipal(), logicalRole)) { roles.add(logicalRole); break; } } else if (principal != null) { final String name = principal.getName(); if (logicalRole.equals(name)) { roles.add(logicalRole); } } } } return roles; }
@Override public boolean isCallerInRole(final String role) { final Principal principal = getCallerPrincipal(); if (TomcatUser.class.isInstance(principal)) { if ("**".equals(role)) { return true; // ie logged in through tomcat } final TomcatUser tomcatUser = (TomcatUser) principal; final GenericPrincipal genericPrincipal = (GenericPrincipal) tomcatUser.getTomcatPrincipal(); final String[] roles = genericPrincipal.getRoles(); if (roles != null) { for (final String userRole : roles) { if (userRole.equals(role)) { return true; } } } return false; } return super.isCallerInRole(role); }
public Set<String> getLogicalRoles(Principal[] principals, Set<String> logicalRoles) { LinkedHashSet<String> roles = new LinkedHashSet<String>(logicalRoles.size()); for (String logicalRole : logicalRoles) { for (Principal principal : principals) { if (principal instanceof TomcatUser) { TomcatUser user = (TomcatUser) principal; if (TomcatHelper.hasRole(user.getRealm(), user.getTomcatPrincipal(), logicalRole)) { roles.add(logicalRole); break; } } else if (principal != null) { String name = principal.getName(); if (logicalRole.equals(name)) { roles.add(logicalRole); } } } } return roles; }
public Principal tomcatPrincipal() { final Principal userPrincipal = securityService.getCallerPrincipal(); if (TomcatSecurityService.TomcatUser.class.isInstance(userPrincipal)) { return TomcatSecurityService.TomcatUser.class.cast(userPrincipal).getTomcatPrincipal(); } return userPrincipal; }
private Subject createSubject(final Realm realm, final Principal principal) { final Set<Principal> principals = new HashSet<Principal>(); principals.add(new TomcatUser(realm, principal)); return new Subject(true, principals, new HashSet(), new HashSet()); }