1 Reply Latest reply on Apr 13, 2007 7:55 PM by Shane Bryzak

    Security and pageflows in SEAM 1.2.1GA

    Richard Hardy Newbie

      Hi,
      I am in the process of migrating an application from SEAM 1.1.6GA to 1.2.1GA and I am having a problem with the security configuration in my application.

      I use pageflows, with the transition in question being the "login" transition in the code below:

      <start-page name="login" view-id="/faceletsPages/loginPage.xhtml">
       <redirect/>
      
       <transition name="alreadyLoggedIn" to="loggedIn"/>
      
       <transition name="login" to="checkLogin">
       <action expression="#{identity.login}"/>
       </transition>
      
      </start-page>


      When this transition executes, I get an exception as follows:

      09:20:31,869 ERROR [GraphElement] action threw exception: couldn't evaluate expr
      ession '#{identity.login}'
      org.jbpm.JbpmException: couldn't evaluate expression '#{identity.login}'
       at org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator.evaluate(JbpmExpression
      Evaluator.java:38)
       at org.jbpm.graph.def.Action.execute(Action.java:119)
       at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:235)
       at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:212)
      
       at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.ja
      va:182)
       at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:166)
       at org.jbpm.graph.def.Transition.take(Transition.java:106)
       at org.jbpm.graph.def.Node.leave(Node.java:383)
       at org.jbpm.graph.exe.Token.signal(Token.java:178)
       at org.jbpm.graph.exe.Token.signal(Token.java:141)
       at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:229)
       at org.jboss.seam.pageflow.PageflowHelper.signal(PageflowHelper.java:47)
      
       at org.jboss.seam.core.Pageflow.navigate(Pageflow.java:298)
       at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigat
      ionHandler.java:30)
       at org.apache.myfaces.application.ActionListenerImpl.processAction(Actio
      nListenerImpl.java:84)
       at javax.faces.component.UICommand.broadcast(UICommand.java:106)
       at org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.j
      ava:180)
       at org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot
      .java:158)
       at org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewR
      oot.java:329)
       at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(Lifecycl
      eImpl.java:343)
       at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java
      :86)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(Extensions
      Filter.java:97)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(Extensions
      Filter.java:97)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(Extensions
      Filter.java:144)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.jav
      a:63)
       at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.jav
      a:49)
       at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.jav
      a:49)
       at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.jav
      a:49)
       at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseX
      MLFilter.java:96)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.
      java:220)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
      lter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:202)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:173)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:213)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:178)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
      yAssociationValve.java:175)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
      torBase.java:432)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
      e.java:74)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:105)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
      541)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:107)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
      a:148)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
      :869)
       at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.p
      rocessConnection(Http11BaseProtocol.java:664)
       at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
      int.java:527)
       at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWor
      kerThread.java:112)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: org.jbpm.jpdl.el.ELException: Unable to find a value for "login" in o
      bject of class "org.jboss.seam.security.RuleBasedIdentity" using operator "."
       at org.jbpm.jpdl.el.impl.Logger.logError(Logger.java:482)
       at org.jbpm.jpdl.el.impl.Logger.logError(Logger.java:499)
       at org.jbpm.jpdl.el.impl.Logger.logError(Logger.java:612)
       at org.jbpm.jpdl.el.impl.ArraySuffix.evaluate(ArraySuffix.java:303)
       at org.jbpm.jpdl.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
       at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEval
      uatorImpl.java:264)
       at org.jbpm.jpdl.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEval
      uatorImpl.java:191)
       at org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator.evaluate(JbpmExpression
      Evaluator.java:34)
       ... 64 more


      This used to work in SEAM 1.1.6. Does anyone have any ideas as to whether I am doing something wrong now?

      Thanks,
      Richard.