[jboss-jira] [JBoss JIRA] (AS7-6422) OptionsRoleMappingProvider cannot work on AS7

Tomaz Cerar (JIRA) jira-events at lists.jboss.org
Wed Jan 30 18:12:51 EST 2013


    [ https://issues.jboss.org/browse/AS7-6422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751498#comment-12751498 ] 

Tomaz Cerar commented on AS7-6422:
----------------------------------

given that AS7 does not provide nested properties inside properties this fix should be done to provider itself
                
> OptionsRoleMappingProvider cannot work on AS7
> ---------------------------------------------
>
>                 Key: AS7-6422
>                 URL: https://issues.jboss.org/browse/AS7-6422
>             Project: Application Server 7
>          Issue Type: Feature Request
>          Components: Security
>    Affects Versions: 7.1.2.Final (EAP), 7.1.3.Final (EAP)
>            Reporter: Akram Ben Aissi
>            Assignee: Anil Saldhana
>
> The OptionsRoleMappingProvider available in picketbox jars is intended to provided a simple way to map some toles to other roles.
> This case is usefull in many cases where you get roles from a system and want to map them to one or several JaaS Roles.
> However, OptionsRoleMappingProvider cannot be used in AS7 to map roles to groups because this provider contains an attribute Properties roleMaps which requires a Properties object to be initialized.
> A Properties object cannot be passed by AS7 configuration, so this provider cannot be used as is.
> Here is its required syntax according to picketbox documentation:
> {code:xml} 
> <mapping-module code="org.jboss.security.mapping.providers.OptionsRoleMappingProvider"
>           type="role">
>              <module-option name="rolesMap" >
>                         <java:properties xmlns:java="urn:jboss:java-properties"
>                                  xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
>                                  xs:schemaLocation="urn:jboss:java-properties resource:java-properties_1_0.xsd">
>                                  <java:property>
>                                     <java:key>validuser</java:key>
>                                     <java:value>AuthorizedUser,InternalUser</java:value>
>                                  </java:property>
>                            </java:properties>
>                       </module-option>
>                    <module-option name="replaceRoles">false</module-option>
>                </mapping-module>
>        </mapping>
> {code} 
> Such a syntax is not possible in AS7.
> Here is the incriminated code:
> {code:java} 
> private Properties roleMapProperties = new Properties();
>    /**
>     * Specifies
>     */
>    private boolean REPLACE_ROLES = false;
>    
>    public void init(Map<String,Object> opt)
>    {
>      this.options = opt;
>      if(options != null)
>      {
>         if(options.containsKey(REPLACE_ROLES_STRING))
>         {
>            REPLACE_ROLES = "true".equalsIgnoreCase((String)options.get(REPLACE_ROLES_STRING)); 
>         }
>         if(options.containsKey(ROLES_MAP))
>         {
>            roleMapProperties = (Properties)options.get(ROLES_MAP);
>         } 
>      } 
>    }
> {code} 
> As you can see, roleMapProperties is a Properties.
> But in AS7, options.get(ROLES_MAP) returns a String.
> So an adapter is required to make the AS match the contract, or another implemtation is required.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list