Seam will apply page parameters before it does the checks to see if login 
redirection is required. 

This is problematic for applications rely on session scope information created 
in authenticator being present
e.g. using @In(scope=SESSION) currentUser;


  | <page view-id="/secure/browseUsers.xhtml">
  |     <param name="firstResult" value="#{userBrowseQueryFactory.firstResult}" 
converterId="javax.faces.Integer" />
  | </page>
  | 


  | 12:16:53,383 ERROR [DebugPageHandler] redirecting to debug page
  | org.jboss.seam.RequiredException: In attribute requires non-null value: 
userBrowseQueryFactory.currentUser
  |     at org.jboss.seam.Component.getValueToInject(Component.java:1887)
  |     at org.jboss.seam.Component.injectAttributes(Component.java:1336)
  |     at org.jboss.seam.Component.inject(Component.java:1163)
  |     at 
org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
  |     at 
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
  |     at 
org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
  |     at 
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:154)
  |     at 
org.jboss.seam.intercept.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:89)
  |     at 
edu.uga.ais.piac.pva.action.user.UserBrowseQueryFactory$$EnhancerByCGLIB$$5ef43164.setFirstResult(<generated>)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:585)
  |     at 
org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:406)
  |     at 
org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:173)
  |     at 
org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:275)
  |     at org.jboss.seam.core.Expressions$1.setValue(Expressions.java:67)
  |     at org.jboss.seam.core.Pages.applyRequestParameterValues(Pages.java:608)
  |     at 
org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:176)
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:57)
  |     at 
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:70)
  |     at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:373)
  |     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
  |     

You could workaround the problem with @In(request=false,scope=SESSION) 
currentUser or call Contexts.getSessionContext().get("currentUser");

My question is why would Seam need to need to apply request parameters if it is 
going to redirect to login page?


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4026339#4026339

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4026339
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to