Hi,

how did you do it? I am getting ComponentEventException when using

    void onSuccess() {
        Request request = requestGlobals.getRequest();
        String url = request.getContextPath() + checkUrl +
"?j_username=" + username + "&j_password=" + password;
        logger.info("onSuccess() url="+url);
        RequestDispatcher requestDispatcher =
requestGlobals.getHTTPServletRequest().getRequestDispatcher(url);

        try {
            logger.info("onSuccess() : before forward");
            requestDispatcher.forward(requestGlobals.getHTTPServletRequest(),
requestGlobals.getHTTPServletResponse());
            logger.info("onSuccess() : after forward");
        } catch (ServletException e) {
            logger.error("ServletException : " + e.getMessage());
        } catch (IOException e) {
            logger.error("IOException : " + e.getMessage());
        }

    }

What is the T5 way of forwarding to, in this case:
 INFO [27 mar 2009 09:36:48.549] [Login] onSuccess()
url=/j_spring_security_check?j_username=sdfa&j_password=sdfasd

Thanks, Borut


The stack trace:

 INFO [27 mar 2009 09:36:49.049] [Login] onSuccess() : after forward
ERROR [27 mar 2009 09:36:49.064] [DefaultRequestExceptionHandler]
Processing of request failed with uncaught exception:
org.apache.tapestry5.runtime.ComponentEventException
org.apache.tapestry5.runtime.ComponentEventException [at
classpath:si/najdi/identity/server/pages/Login.tml, line 11, column
45]
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1076)
        at 
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:68)
        at 
org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
        at 
$ComponentEventRequestHandler_1204712d04c.handle($ComponentEventRequestHandler_1204712d04c.java)
        at 
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at 
$ComponentEventRequestHandler_1204712d04c.handle($ComponentEventRequestHandler_1204712d04c.java)
        at 
org.apache.tapestry5.services.TapestryModule$44.handle(TapestryModule.java:2105)
        at 
$ComponentEventRequestHandler_1204712d04c.handle($ComponentEventRequestHandler_1204712d04c.java)
        at 
$ComponentEventRequestHandler_1204712cf9f.handle($ComponentEventRequestHandler_1204712cf9f.java)
        at 
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:127)
        at $Dispatcher_1204712cfa2.dispatch($Dispatcher_1204712cfa2.java)
        at $Dispatcher_1204712cf94.dispatch($Dispatcher_1204712cf94.java)
        at 
org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
        at 
org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilterHttp(SpringSecurityExceptionTranslationFilter.java:100)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
        at 
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
        at 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
        at $RequestHandler_1204712cf95.service($RequestHandler_1204712cf95.java)
        at $RequestHandler_1204712cf8b.service($RequestHandler_1204712cf8b.java)
        at 
org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007)
        at 
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at 
$HttpServletRequestFilter_1204712cf8a.service($HttpServletRequestFilter_1204712cf8a.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
        at 
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf88.service($HttpServletRequestFilter_1204712cf88.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilterHttp(SpringSecurityExceptionTranslationFilter.java:100)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf87.service($HttpServletRequestFilter_1204712cf87.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf86.service($HttpServletRequestFilter_1204712cf86.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf85.service($HttpServletRequestFilter_1204712cf85.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf84.service($HttpServletRequestFilter_1204712cf84.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at 
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
        at 
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
        at 
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at 
$HttpServletRequestFilter_1204712cf83.service($HttpServletRequestFilter_1204712cf83.java)
        at 
$HttpServletRequestHandler_1204712cf8c.service($HttpServletRequestHandler_1204712cf8c.java)
        at 
$HttpServletRequestHandler_1204712cf82.service($HttpServletRequestHandler_1204712cf82.java)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.util.NoSuchElementException
        at java.util.LinkedList.remove(LinkedList.java:788)
        at java.util.LinkedList.removeFirst(LinkedList.java:134)
        at 
org.apache.tapestry5.internal.services.EnvironmentImpl.pop(EnvironmentImpl.java:83)
        at $Environment_1204712cfe3.pop($Environment_1204712cfe3.java)
        at $Environment_1204712cf6c.pop($Environment_1204712cf6c.java)
        at 
org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:421)
        at 
org.apache.tapestry5.corelib.components.Form$onAction$invocation_1204712de20.invokeAdvisedMethod(Form$onAction$invocation_1204712de20.java)
        at 
org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
        at 
org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
        at 
org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
        at 
org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
        at org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
        at 
org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:894)
        at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1059)
        ... 97 more


2008/12/15 Jean Luc <jeanluc2...@gmail.com>:
> Update: I can get the response with:
>
>   @Inject
>    private RequestGlobals requestGlobals;
>
> and using requestGlobals.getHTTPServletResponse();
>
> I'll need to change the redirect into a forward (to save a trip and to
> prevent the username/pwd appear in the URL) but that's standard
> servlet stuff.
>
> Thanks.
>
> On Sun, Dec 14, 2008 at 8:05 PM, Jean Luc <jeanluc2...@gmail.com> wrote:
>> Thanks Hugo,
>>
>> I've [tried to] inject the request and the response as mentioned (for
>> the request) at:
>> http://wiki.apache.org/tapestry/Tapestry5ObtainingHttpServletRequest
>>
>>   �...@inject
>>    private HttpServletRequest request;
>>
>>   �...@inject
>>    private HttpServletResponse response;
>>
>> It works for the request, but not for the response (exception below).
>> I've googled for ways to inject the response (I thought it would be
>> similar) but no luck.
>>
>> exception
>>    org.apache.tapestry5.internal.services.TransformationException:
>> Error obtaining injected value for field
>> com.foo.tapestry.pages.Login.response: No service implements the
>> interface javax.servlet.http.HttpServletResponse.
>>
>> # org.apache.tapestry5.internal.services.TransformationException
>> Error obtaining injected value for field
>> com.foo.tapestry.pages.Login.response: No service implements the
>> interface javax.servlet.http.HttpServletResponse.
>>
>>
>> In case it matters, I'm using T 5.0.18 and JBoss 4.2.2GA
>> Thanks in advance,
>> JL
>>
>> On Sun, Dec 14, 2008 at 7:44 PM, Hugo Palma <hugo.m.pa...@gmail.com> wrote:
>>> In your page class inject the check url like this:
>>>
>>> @Inject
>>> @Value("${spring-security.check.url}")
>>> private String checkUrl;
>>>
>>> then on your onSuccessMethod:
>>>
>>> response.sendRedirect(request.getContextPath() + checkUrl + "?j_username=" +
>>> username + "&j_password=" + password);
>>>
>>> where username and password are the bound variables for your username and
>>> password text fields on the form.
>>>
>>> Jean Luc wrote:
>>>>
>>>> Hello,
>>>>
>>>> I've been trying to integrate T5 and Spring Security (2.0.4, not the older
>>>> Acegi) but haven't succeeded in making the two work together.
>>>>
>>>> The standard way to specify a form login with Spring 2.5 is like below.
>>>> See
>>>> the <form-login> element which specified the login page (Login) and what
>>>> URL
>>>> Spring will intercept (the standard j_security_check).
>>>>
>>>> <b:beans xmlns="http://www.springframework.org/schema/security";
>>>>    <http>
>>>>        <form-login login-page="/Login"
>>>>                    default-target-url="/Start"
>>>>                    authentication-failure-url="/Login?login_error=1"
>>>>                    login-processing-url="j_security_check" />
>>>>    </http>
>>>>
>>>> I have a typical Login.tml (labels and cosmetic stuff removed for brevity)
>>>>
>>>> <t:form t:id="loginForm">
>>>>    <table><tr><td><input type="text" t:id="j_username" t:type="TextField"
>>>> t:value="j_username"/></td></tr>
>>>>        <tr><td><input type="text" t:id="j_password" t:type="PasswordField"
>>>> t:value="j_password"/></td></tr>
>>>>        <tr><input type="submit" value="Log In"/></td> </tr>
>>>>    </table>
>>>> </t:form>
>>>>
>>>> What happens is that the POST that occurs when submitting the form goes to
>>>> the Login.onSubmit() instead of j_security_check. While it is possible to
>>>> add code there to call Spring's AuthenticationManager, I would end up
>>>> duplicating what Spring Security does (the logic to redirect to different
>>>> pages if the login succeeded or not and so on). I'd like to use Spring
>>>> since
>>>> it already implements this.
>>>>
>>>> Is it possible to submit the login info to j_security_check instead? Or to
>>>> forward the request from within Login.onSubmit() to /j_security_check?
>>>>
>>>> I went through the "Tapestry 5" book by Alexander Kolesnikov, but didn't
>>>> find this info. Also, I am aware of the tapestry5-acegi extension (
>>>> http://www.localhost.nu/java/tapestry5-acegi/) but this one seems under
>>>> development and for such a simple thing I didn't want to add a dependency
>>>> on
>>>> another jar.
>>>>
>>>> As you can tell, I'm new to T5. I've had some exposure to T4 and an older
>>>> version of Spring (2.0) but there things were quite different, both in
>>>> Tapestry itself and in how Acegi is configured  in Spring.
>>>>
>>>> Advice is appreciated,
>>>> JL
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to