[
http://jira.jboss.com/jira/browse/JBSEAM-1041?page=all ]
Darryl Smith reopened JBSEAM-1041:
----------------------------------
This issue is still present in Seam CVS 20070708-0815
[07/08 08:27:53] ERROR [seam.exception.DebugPageHandler] - <redirecting to debug
page>
org.jboss.seam.RequiredException: In attribute requires non-null value:
vacancyVersionHome.currentUser
at org.jboss.seam.Component.getValueToInject(Component.java:2059)
at org.jboss.seam.Component.injectAttributes(Component.java:1498)
at org.jboss.seam.Component.inject(Component.java:1319)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:45)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:43)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
at org.jboss.seam.util.Work.workInTransaction(Work.java:39)
at
org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
at
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:151)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:87)
at
edu.uga.ais.piac.pva.action.vacancy.VacancyVersionHome_$$_javassist_0.create(VacancyVersionHome_$$_javassist_0.java)
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:597)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:124)
at org.jboss.seam.Component.callComponentMethod(Component.java:1974)
at org.jboss.seam.Component.callCreateMethod(Component.java:1897)
at org.jboss.seam.Component.newInstance(Component.java:1876)
at org.jboss.seam.Component.getInstance(Component.java:1773)
at org.jboss.seam.Component.getInstance(Component.java:1740)
at org.jboss.seam.Component.getInstance(Component.java:1734)
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:60)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:135)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at org.jboss.seam.core.Validators$ValidatingResolver.getValue(Validators.java:160)
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
at org.jboss.el.parser.AstValue.getTarget(AstValue.java:34)
at org.jboss.el.parser.AstValue.setValue(AstValue.java:83)
at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249)
at org.jboss.seam.core.Validators.validate(Validators.java:118)
at org.jboss.seam.navigation.Param.getValueFromRequest(Param.java:219)
at org.jboss.seam.navigation.Pages.storeRequestParameterValuesInViewRoot(Pages.java:726)
at org.jboss.seam.navigation.Pages.postRestore(Pages.java:352)
at org.jboss.seam.jsf.SeamPhaseListener.afterRestoreView(SeamPhaseListener.java:389)
at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:211)
at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:184)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
The problem is cause by validation of request parameters
Pages.java:346
---------------------
public void postRestore(FacesContext facesContext)
{
//first store the page parameters into the viewroot, so
//that if a login redirect occurs, or if a failure
//occurs while applying to the model, we can still make
//Redirect.captureCurrentView() work.
boolean validationFailed = storeRequestParameterValuesInViewRoot(facesContext);
if (validationFailed) Validation.instance().fail();
String viewId = getViewId(facesContext);
for ( Page page: getPageStack(viewId) )
{
if ( isLoginRedirectRequired(viewId, page) )
{
redirectToLoginView();
return;
}
Pages: isLoginRedirectRequired should be called before applying
request parameter values
----------------------------------------------------------------------------------------
Key: JBSEAM-1041
URL:
http://jira.jboss.com/jira/browse/JBSEAM-1041
Project: JBoss Seam
Issue Type: Bug
Components: Security
Affects Versions: 1.2.0.GA
Reporter: Darryl Smith
Assigned To: Gavin King
Fix For: 1.3.0.ALPHA
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, or using @In(scope=SESSION) Identity identity,
or any factory that depends on identity information
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)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira