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

Reply via email to