java ee - EJBAccessException within @Schedule method in JBoss 6 -
java ee - EJBAccessException within @Schedule method in JBoss 6 -
we filling map using remote method ejb client. application using timer work on info map.
when security-domain activated using ldap, client able phone call remote method using ldap authentication javax.ejb.ejbaccessexception: invalid user thrown timer timeout. method annotated @javax.ejb.schedule effort phone call local ejb method, , authentication failed.
i have read lots of threads configuration: revelant seems giving security priviliege scheduler in java ee 6, annotation @runas on timer seems have no impact.
i have tried different mix between jboss-app/security-domain , @org.jboss.ejb3.annotation.securitydomain annotation without success.
does have experience using timer ldap authentication ?
this problem occurs when principal not propagate when utilize @runas/@runasprincipal.
to resolve issue must alter configuration in $jboss_home/server/<instance>/deploy/ejb3-interceptors-aop.xml adding:
<interceptor-ref name="org.jboss.ejb3.security.runassecurityinterceptorfactory"/> in statelessbeantimeoutmethodstack
the ejb3-interceptors-aop.xml (line 203 approx) like:
<stack name="statelessbeantimeoutmethodstack"> <!-- include mutual timeout method stack after jbas-8130, utilize stack-ref , remove 4 duplicate listed interceptor-refs below <stack-ref name="timeoutmethodstack"/> --> <interceptor-ref name="org.jboss.ejb3.interceptor.ejb3tcclinterceptor"/> <interceptor-ref name="org.jboss.aspects.currentinvocation.currentinvocationinterceptor"/> <interceptor-ref name="currentinvocationcontextinterceptor"/> <interceptor-ref name="org.jboss.ejb3.blockcontainershutdowninterceptor"/> <!-- additional slsb specific ones --> <interceptor-ref name="org.jboss.ejb3.encpropagationinterceptor"/> <interceptor-ref name="org.jboss.ejb3.security.runassecurityinterceptorfactory"/> <interceptor-ref name="org.jboss.aspects.tx.txpropagationinterceptor"/> <interceptor-ref name="cmttx"/> <interceptor-ref name="org.jboss.ejb3.stateless.statelessinstanceinterceptor"/> <interceptor-ref name="org.jboss.ejb3.tx.bmttxinterceptorfactory"/> <interceptor-ref name="org.jboss.ejb3.allowedoperationsinterceptor"/> <interceptor-ref name="org.jboss.ejb3.entity.transactionscopedentitymanagerinterceptor"/> </stack> same problem occurs mdb's.
se also: runas not work on ejb timer bean timeout methods
java-ee jboss ejb
Comments
Post a Comment