Author: markt Date: Fri Jun 26 07:48:29 2015 New Revision: 1687701 URL: http://svn.apache.org/r1687701 Log: Added ability to get roles directly from realm Patch by fjodorver
Modified: tomcat/trunk/java/org/apache/catalina/Realm.java tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Modified: tomcat/trunk/java/org/apache/catalina/Realm.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Realm.java?rev=1687701&r1=1687700&r2=1687701&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Realm.java (original) +++ tomcat/trunk/java/org/apache/catalina/Realm.java Fri Jun 26 07:48:29 2015 @@ -208,4 +208,12 @@ public interface Realm { * @param listener The listener to remove */ public void removePropertyChangeListener(PropertyChangeListener listener); + + + /** + * Return roles associated with given principal + * @param principal + * @return principal roles + */ + public String[] getRoles(Principal principal); } Modified: tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties?rev=1687701&r1=1687700&r2=1687701&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties Fri Jun 26 07:48:29 2015 @@ -72,6 +72,7 @@ realmBase.createUsernameRetriever.ClassN realmBase.createUsernameRetriever.InstantiationException=Cannot create object of type {0}. realmBase.createUsernameRetriever.IllegalAccessException=Cannot create object of type {0}. realmBase.credentialHandler.customCredentialHandler=Unable to set the property [{0}] to value [{1}] as a custom CredentialHandler has been configured +realmBase.cannotGetRoles=Cannot get roles from principal [{0}] userDatabaseRealm.lookup=Exception looking up UserDatabase under key {0} userDatabaseRealm.noDatabase=No UserDatabase component found under key {0} dataSourceRealm.authenticateFailure=Username {0} NOT successfully authenticated Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1687701&r1=1687700&r2=1687701&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Fri Jun 26 07:48:29 2015 @@ -1715,4 +1715,15 @@ public abstract class RealmBase extends throw new LifecycleException(sm.getString("realmBase.createUsernameRetriever.ClassCastException", className), e); } } + + + @Override + public String[] getRoles(Principal principal) { + if (principal instanceof GenericPrincipal) { + return ((GenericPrincipal) principal).getRoles(); + } + + String className = principal.getClass().getSimpleName(); + throw new IllegalStateException(sm.getString("realmBase.cannotGetRoles", className)); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org