Paul Adams created CXF-5536:
-------------------------------

             Summary: JAASAuthenticationFilter can only filter users from 
groups/roles based on one classname.
                 Key: CXF-5536
                 URL: https://issues.apache.org/jira/browse/CXF-5536
             Project: CXF
          Issue Type: Improvement
          Components: Core
    Affects Versions: 2.7.8
            Reporter: Paul Adams
            Priority: Minor


This is related to:
https://issues.apache.org/jira/browse/CXF-5484

The RolePrefixSecurityContextImpl class and users of it are only allowed to 
pass a single String is as a "role classifier".  This is fine assuming that a 
system only has one other java principal type other than a "user principal" but 
many have multiple principal types.  For instance it's common to have Users, 
Groups and Roles.

In such situations the existing code cannot adequately separate what is a user 
from what is something else (a group or role).

Multiple qualifiers should be supported OR the reverse logic might actually be 
more simplistic.  That is today you pass in a string that is intended to 
indicate what is a "role" and the code then thinks that if it's not a role it 
must be a user.  Perhaps it would be more straight forward to ask what's a 
"user" (since in a set of Principals there will only be one of those) and then 
assume everything else is a "role".

At any rate if I configure karaf with a realm that uses 
org.apache.karaf.jaas.modules.properties.PropertiesLoginModule 
(http://karaf.apache.org/manual/latest/users-guide/security.html) and then 
configure that properties file to specify both groups and roles then CXF may 
think that a "group" is a "user" and more often than not improperly identifies 
a group has being the user principal.

To work around this I plan to not use groups so that I only have User and Role 
Principals but it would certainly be nicer if CXF could deal with both.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to