cklein05 opened a new pull request #420:
URL: https://github.com/apache/tomcat/pull/420


   The UserDatabaseRealm queries its UserDatabase in override hasRole() in 
order to return a correct result, if the passed Principal is a GenericPrincipal 
with an associated userPrincipal of type UserDatabasePrincipal. That 
userPrincipal more or less acts like a tag interface to determine whether that 
special handling is required. If not, the override calls its super method.
   
   The UserDatabase can be updated through JMX at any time. Currently, such 
changes are taken into account instantly (at every invocation of hasRole()), 
which is different from other Realms and the UserDatabaseRealm's documentation.
   
   Since the logged on user's effective roles are calculated and stored in the 
GenericPrincipal returned from method getPrincipal, these could be used 
instead. This eliminates both the hasRole() override as well as the private 
class UserDatabaseRealm.UserDatabasePrincipal and makes the Realm behave 
according to the documentation (and like e. g. DataSourcRealm).
   
   Also, duplicates will be ignored when effective roles are calculated from 
the User's Roles and Groups, simply by using a HashSet instead of an ArrayList 
in method getPrincipal(String),


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to