You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/06/26 09:48:29 UTC

svn commit: r1687701 - in /tomcat/trunk/java/org/apache/catalina: Realm.java realm/LocalStrings.properties realm/RealmBase.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org