[jbossseam-issues] [JBoss JIRA] Reopened: (JBSEAM-1041) Pages: isLoginRedirectRequired should be called before applying request parameter values
Darryl Smith (JIRA)
jira-events at lists.jboss.org
Sun Jul 8 08:43:03 EDT 2007
[ 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
More information about the seam-issues
mailing list