AFAIC, chaining interceptor is included in the default stack. Anyway I have added it and still same result.
<interceptor-ref name="chain"/> <!--------------- HERE ------> <interceptor-ref name="securityInteceptor" /> <interceptor-ref name="chain"/> <!--------------- AND HERE ------> <interceptor-ref name="defaultStack" /> I'll try Rahul comments and will let you know. El Viernes, 12 de julio de 2013 13:05:10 Antonios Gkogkakis escribió: > Have you added the Chaining interceptor ? > > Antonios > > > On 12 July 2013 12:41, Antonio Sánchez <juntandolin...@gmail.com> wrote: > > > El Viernes, 12 de julio de 2013 12:33:43 Antonios Gkogkakis escribió: > > > try > > > request.setAttribute("url",invocation.getInvocationContext().getName()) > > in > > > your interceptor. > > > > Same result. Even using "invocation.getProxy().getNamespace()". > > > > > > > > > > Antonios > > > > > > > > > On 12 July 2013 12:03, Antonio Sánchez <juntandolin...@gmail.com> wrote: > > > > > > > I'm having problems with chaining. I have tried several ways but none > > > > works. For instance: > > > > > > > > 1. http://localhost/mycontext/secure/protected => Login.jsp > > > > (${#request.url} is readable in jsp). > > > > > > > > 2. Login.jsp => submit (correct user/pwd) => ERROR: Infinite recursion > > > > detected: [//authenticate!authenticate, //, //] (url not available as > > > > request attribute) > > > > > > > > When submitting, request attribute 'url' is not present in the action, > > I > > > > guess because result type of "input" is "dispatcher", not "chain", but > > > > using type "chain" with a JSP causes St2 to complain, and won't find > > any > > > > action. > > > > > > > > Pseudo-code: > > > > > > > > INTERCEPTOR > > > > if (userInSession == null) { > > > > request.setAttribute("url", request.getServletPath()); > > > > return "AUTHENTICATE"; > > > > } > > > > > > > > return invocation.invoke(); > > > > > > > > STRUTS.XML > > > > > > > > - package base, namespace "" > > > > - defines interceptor SECURE and default interceptor stack > > > > (SECURE, DEFAULTSTACK). > > > > - defines global result: > > > > <result name="AUTHENTICATE" type="chain"> > > > > <param name="actionName">authenticate</param> > > > > <param name="namespace">/</param> > > > > </result> > > > > > > > > - package root extends base, namespace "/" > > > > <action name="authenticate" class...> > > > > <result type="chain"> > > > > <param name="actionName">${#request.url}</param> > > > > </result> > > > > <result name="input">/Login.jsp</result> > > > > </action> > > > > > > > > - package secure extends base, namespace "/secure" > > > > <action name="protected" class=...> > > > > <result>/secure/Protected.jsp</result> > > > > </action> > > > > > > > > ACTION AUTHENTICATE > > > > > > > > if (userInSession != null ) { > > > > request.getSession().setAttribute("USER_IN_SESSION", > > > > userInSession); > > > > //expecting original url is a request attribute > > > > return SUCCESS; > > > > } else { > > > > return INPUT; > > > > } > > > > > > > > At the moment I've not been able to implement the requirement. > > > > > > > > > > > > El Miércoles, 10 de julio de 2013 10:07:36 Paul Benedict escribió: > > > > > Forwarding to another action means you want to do chaining: > > > > > http://struts.apache.org/release/2.3.x/docs/action-chaining.html > > > > > > > > > > <result type="chain"> > > > > > <param name="actionName">autenticar</param> > > > > > </result> > > > > > > > > > > > > > > > On Wed, Jul 10, 2013 at 10:00 AM, Antonio Sánchez > > > > > <juntandolin...@gmail.com>wrote: > > > > > > > > > > > Can't forward even without using global results: > > > > > > > > > > > > http://localhost:8084/mycontext/autenticar => login.jsp - OK > > > > > > > > > > > > <action name="forward"> > > > > > > <result>/autenticar</result> > > > > > > </action> > > > > > > > > > > > > http://localhost:8084/mycontext/forward => 404 ERROR - > > > > > > /mycontext/autenticar not available > > > > > > > > > > > > Which is the right way to forward to actions? > > > > > > > > > > > > Using 2.3.15. > > > > > > > > > > > > El Miércoles, 10 de julio de 2013 15:29:51 usted escribió: > > > > > > > > Second question: because it's a redirect, hence a new request. > > > > > > > > > > > > > > http://localhost:8084/mycontext/autenticar => login.jsp - OK > > > > > > > > > > > > > > Returned by interceptor: > > > > > > > > > > > > > > <global-results> > > > > > > > <result name="AUTENTICAR">/autenticar</result> > > > > > > > </global-results> > > > > > > > > > > > > > > http://localhost:8084/mycontext/admin/protected => 404 ERROR - > > > > > > /mycontext/autenticar not available > > > > > > > > > > > > > > How should I "forward" to actions? > > > > > > > > > > > > > > > > > > > > > > > > > > > > El Miércoles, 10 de julio de 2013 07:43:38 Dave Newton escribió: > > > > > > > > Second question: because it's a redirect, hence a new request. > > > > > > > > > > > > > > > > Dave > > > > > > > > On Jul 10, 2013 7:28 AM, "Antonio Sánchez" < > > > > juntandolin...@gmail.com> > > > > > > > > > > > > > > > > wrote: > > > > > > > > > Use Case: request some protected resource -> redirect action > > for > > > > > > > > > authentication -> access protected resource. > > > > > > > > > > > > > > > > > > I'm using a custom interceptor that redirects > > (redirectAction) > > > > to a > > > > > > global > > > > > > > > > result if no user object is found in session. The final > > action > > > > > > result then > > > > > > > > > redirects to a login page. > > > > > > > > > > > > > > > > > > The interceptor gets the original action requested (using > > > > > > > > > request.getServletPath(), but not sure if this is right), and > > > > puts > > > > > > it in > > > > > > > > > the value stack. It would be used with dynamic redirection > > in the > > > > > > final > > > > > > > > > result upon login success( ${nextAction} ) . This action > > must be > > > > > > passed in > > > > > > > > > between redirections. > > > > > > > > > > > > > > > > > > But I need to reuse the original request. Reconstructing the > > > > request > > > > > > with > > > > > > > > > a query string is not an option. I need the original request: > > > > > > GET/POST > > > > > > > > > method, all parameters/values, maybe uploading binary content > > > > > > > > > (inputstream), maybe headers... > > > > > > > > > > > > > > > > > > Is it possible to do this? How? > > > > > > > > > > > > > > > > > > ------ > > > > > > > > > > > > > > > > > > Partially related to this: I'm having problems with > > > > redirections. The > > > > > > > > > original request parameters are forwarded only using > > dispatcher > > > > > > result . > > > > > > > > > If > > > > > > > > > I use redirectAction or redirect, original params are lost. > > Why? > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > > > > > > > > For additional commands, e-mail: user-h...@struts.apache.org > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > > > > > For additional commands, e-mail: user-h...@struts.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > > > For additional commands, e-mail: user-h...@struts.apache.org > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > For additional commands, e-mail: user-h...@struts.apache.org > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org