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