[ 
https://issues.jboss.org/browse/SOLDER-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12651730#comment-12651730
 ] 

Ove Ranheim edited comment on SOLDER-309 at 12/16/11 2:15 PM:
--------------------------------------------------------------

There's a bit of doubt (from my side at least) to what should be the expected 
behavior. Below is an seam-dev chat snippet to shed light on topic.

[09:59am] oranheim: maschmid: i do see you point with #1, so it's not a bug. 
It's correct behaviorr
[09:59am] oranheim: maschmid: but, what is the correct faces-config.xml 
configuration then. Because, you need to have a identity.login rule in order to 
redirect the user during normal login.. I'm a bit confused here
[11:14am] maschmid: oranheim, I agree with you that there should be a way to 
tell it to redirect somewhere else if you go to the login page explicitly... I 
don't think it is possible right now to do it in any clean way... currently it 
seems that the only way is to make the "login" button go to "home" or whatever 
view you want to end up after the successful login..
[11:16am] maschmid: we should probably ask bleathem what he thinks about this...
[11:17am] oranheim: maschmid: Marek, that is not a satisfactory solution, 
because it violates with the principles of @ViewConfig where you declare 
restricted views. So, it will make that great feature unusable. It's in fact 
such a blocker, that my company can't upgrade and move on to the next level.. 
Let's discuss this with Brian
[11:18am] oranheim: maschmid: Re issue #1. Using @Initialed HttpServletResponse 
works just fine in my app now
[11:29am] maschmid: oranheim, I still don't quite understand why you need to go 
to the login page explicitly... isn't the point of the @LoginView to 
automatically redirect you to the login view whenever you need? (now of course 
the button in the UI will probably be labeled "login" as that is what the user 
expects, but conceptually, the user doesn't want to go to the login form, he 
want the "home" view..
[11:32am] oranheim: maschmid: hmm… i haven't thought about that.. if we remove 
the faces-config nav-rule, request e.g. /home.xhtml (which is protected) that 
will redirect the user to the login.xhtml view and from there the user will be 
redirect to home after logon

                
      was (Author: oranheim):
    There's a bit of doubt (from my side at least) to what should be the 
expected behavior. Below is an seam-dev chat snippet to shed light on topic.

{noformat}
[09:59am] oranheim: maschmid: i do see you point with #1, so it's not a bug. 
It's correct behaviorr
[09:59am] oranheim: maschmid: but, what is the correct faces-config.xml 
configuration then. Because, you need to have a identity.login rule in order to 
redirect the user during normal login.. I'm a bit confused here
[11:14am] maschmid: oranheim, I agree with you that there should be a way to 
tell it to redirect somewhere else if you go to the login page explicitly... I 
don't think it is possible right now to do it in any clean way... currently it 
seems that the only way is to make the "login" button go to "home" or whatever 
view you want to end up after the successful login..
[11:16am] maschmid: we should probably ask bleathem what he thinks about this...
[11:17am] oranheim: maschmid: Marek, that is not a satisfactory solution, 
because it violates with the principles of @ViewConfig where you declare 
restricted views. So, it will make that great feature unusable. It's in fact 
such a blocker, that my company can't upgrade and move on to the next level.. 
Let's discuss this with Brian
[11:18am] oranheim: maschmid: Re issue #1. Using @Initialed HttpServletResponse 
works just fine in my app now
[11:29am] maschmid: oranheim, I still don't quite understand why you need to go 
to the login page explicitly... isn't the point of the @LoginView to 
automatically redirect you to the login view whenever you need? (now of course 
the button in the UI will probably be labeled "login" as that is what the user 
expects, but conceptually, the user doesn't want to go to the login form, he 
want the "home" view..
[11:32am] oranheim: maschmid: hmm… i haven't thought about that.. if we remove 
the faces-config nav-rule, request e.g. /home.xhtml (which is protected) that 
will redirect the user to the login.xhtml view and from there the user will be 
redirect to home after logon
{noformat}
                  
> @Observes HttpServletResponse causes IllegalProductException
> ------------------------------------------------------------
>
>                 Key: SOLDER-309
>                 URL: https://issues.jboss.org/browse/SOLDER-309
>             Project: Solder
>          Issue Type: Bug
>          Components: Servlet
>    Affects Versions: 3.1.0.CR1
>            Reporter: Ove Ranheim
>            Assignee: Shane Bryzak
>             Fix For: 3.1.0.Final
>
>         Attachments: SolderHttpServletResponseTest.zip
>
>
> The ImplicitHttpServletObjectsProducer.getHttpServletResponse() produces a 
> null instance when invoked from an @Observer.
> {noformat}
> public void observeHttpRequest(@Observes @Initialized HttpServletRequest 
> request, HttpServletResponse response) {
>     final String path = request.getServletPath();
>     
>     if (identity.isLoggedIn()) {
>         // Redirect user to dashboard if landing page is requested
>         if ("/index".equals(path) || "/index.jsf".equals(path)) {
>             log.infof("Authorized request to: %s. Will be redirected to 
> home!", path);
>             try {
>                 response.sendRedirect(request.getContextPath() + "/home");
>             } catch (IOException e) {
>                 e.printStackTrace();
>             }
>         }
>     }
> }
> {noformat}
> Causes the exception:
> {noformat}
> org.jboss.weld.exceptions.IllegalProductException: WELD-000052 Cannot return 
> null from a non-dependent producer method:  [method] @Produces @Typed 
> @RequestScoped protected 
> org.jboss.solder.servlet.http.ImplicitHttpServletObjectsProducer.getHttpServletResponse()
>       
> org.jboss.weld.bean.AbstractProducerBean.checkReturnValue(AbstractProducerBean.java:256)
>       
> org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:362)
>       org.jboss.weld.context.AbstractContext.get(AbstractContext.java:122)
>       
> org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:99)
>       
> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:124)
>       
> org.jboss.weld.proxies.HttpServletResponse$1903192262$Proxy$_$$_WeldClientProxy.sendRedirect(HttpServletResponse$1903192262$Proxy$_$$_WeldClientProxy.java)
>       
> com.musific.webapp.session.HttpRequestWatcher.observeHttpRequest(HttpRequestWatcher.java:80)
>       
> com.musific.webapp.session.HttpRequestWatcher$Proxy$_$$_WeldClientProxy.observeHttpRequest(HttpRequestWatcher$Proxy$_$$_WeldClientProxy.java)
>       sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
>       
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       java.lang.reflect.Method.invoke(Method.java:597)
>       
> org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
>       
> org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
>       
> org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
>       
> org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
>       
> org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
>       
> org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
>       
> org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
>       
> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:282)
>       
> org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:265)
>       
> org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:234)
>       
> org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)
>       
> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:622)
>       
> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:616)
>       
> org.jboss.solder.servlet.event.AbstractServletEventBridge.fireEvent(AbstractServletEventBridge.java:45)
>       
> org.jboss.solder.servlet.event.ServletEventBridgeListener.requestInitialized(ServletEventBridgeListener.java:76)
>       
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
>       
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
>       
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
>       org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952)
>       java.lang.Thread.run(Thread.java:680)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues

Reply via email to