Hello all.
I am trying to override Identity so I can write my own hasPermission method.
My class
@Name("org.jboss.seam.security.identity") @Scope(ScopeType.SESSION) @Install(precedence=Install.APPLICATION) @BypassInterceptors @Startup public class MyIdentity extends Identity @Override public boolean hasPermission(String name, String action, Object...arg) { logger.debug("####################################"+":"+name+":"+action); return !securityEnabled; }
On front end I am trying to use it like
<s:link value="New Client" view="/members/newClient.xhtml" disabled="#{(not identity.loggedIn) or (not s:hasPermission('clientAction','createNewClient'))}" propagation="none"/>
I also tried
<s:link value="New Client" view="/members/newClient.xhtml" disabled="#{(not identity.loggedIn) or (not s:hasPermission('clientAction','createNewClient',null))}" propagation="none"/>
In my components.xml
<security:identity authenticate-method="#{authenticator.authenticate}"/>
And in my authenticator I pass in an instance of MyIdentity
@In MyIdentity identity;
The log statement never gets printed from MyIdentity - hasPermission method. What am I doing wrong here?
Thanks a lot in advance for your help
Regards
Tathagat