[ 
https://issues.apache.org/jira/browse/TOMEE-1492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14271621#comment-14271621
 ] 

Ryan McGuinness commented on TOMEE-1492:
----------------------------------------

This was not apparent in the documentation. The RealmBase being inherited from 
implements hasRole(Principal, String) and does not adequately delegate to the 
underlying realms. The only overridden methods are for authenticate. 
This appears to have been broken for a long time. Even worse it is not an 
interface but a concrete class. Should we open a ticket to the Tomcat community 
then?


> LazyRealm not working well in CombinedRealm (LockOutRealm)
> ----------------------------------------------------------
>
>                 Key: TOMEE-1492
>                 URL: https://issues.apache.org/jira/browse/TOMEE-1492
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.7.1
>            Reporter: Ryan McGuinness
>              Labels: Security
>
> The following LazyRealm definition works as expected in TomEE, delegating to 
> the authenticate(String, String) and hasRole(Principal, String) of the 
> realmClass.
> <Context>
>     <Realm
>             cdi="true"
>             className="org.apache.tomee.catalina.realm.LazyRealm"
>             realmClass="example.security.RecipeBookRealm" />
> </Context>
> When wrapped in a combined realm:
> <Context>
>     <Realm className="org.apache.catalina.realm.LockOutRealm">
>         <Realm
>                 cdi="true"
>                 className="org.apache.tomee.catalina.realm.LazyRealm"
>                 realmClass="example.security.RecipeBookRealm"/>
>     </Realm>
> </Context>
> The authenticate method is delegated to correctly, but the hasRole(Principal, 
> String) method IS NOT.
> Thus when wrapped failure occurs in the annotations for @RolesAllowed() or 
> and security assertions made in the web.xml.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to