Hallo Werner, I have got the request as a variable. Now I want to read from it the state of the hidden input-field, that was on the jsf-Page.
This is the input-field: <t:inputText value="#{mbUser.loginType}" id="loginType" immediate="true" style="display:none;visibility:hidden;"/> How can I read its value from the request? Thanks, Georg 2009/8/20 Werner Punz <werner.p...@gmail.com>: > FacesContext.getExternalContext().getRequest should point you towards > the servlet request. > > Werner > > > Georg Füchsle schrieb: >> Hallo all, >> >> when a session of an user timed out I display a Website telling 'Your >> Session expired; please login again!". >> Now I have to distinguish some 'loginType' of the user. >> If the user initially logged on by ldap i have to redirect him to >> another site as if he logged in by internal mechanisms. >> >> So I have to access the user's logintype data after the session timed out. >> >> I was thinking on a solution without using cookies: >> To do so, I put the loginType data to a hidden input field on the >> website. I thought that this data is not lost doing a request after >> session timeout. >> >> Unfortunately at the restoreview-Phase the data was not already >> written to the bean. >> >> But I think: in the request there will be sent also the information >> from the old (session timed out) page. So I also should be able to >> read the value of this input-field 'loginType'. Is there any >> possibility to read from the request? >> >> Can anybody tell me if I am right, and tell me how to read this data? >> >> I use JSF Tomahawk and Facelets. >> >> >> Thanks! >> >> >> >> Here my input-text: >> >> >> >> <t:inputText value="#{mbUser.loginType}" >> id="loginType" >> immediate="true" >> style="display:none;visibility:hidden;"/> >> >> >> >> >> >> here my PhaseListener: >> >> >> class PhaseListener >> { >> >> public void beforePhase(PhaseEvent event) >> { >> if(event.getPhaseId() == PhaseId.RESTORE_VIEW) >> { >> /* >> before processing any request, I control if the User >> is logged in >> to the application: >> */ >> UserBean user = JsfUtils.getUserBean(); >> >> if(!user.loggedIn()) >> { >> /* >> User is not logged in! >> */ >> ExternalContext extCtx = >> event.getFacesContext().getExternalContext(); >> HttpServletRequest request = >> (HttpServletRequest) extCtx.getRequest(); >> String reqUri = request.getRequestURI(); >> >> if(startOrErrorPageIsCalled(reqUri)) >> { >> /* >> Users that are not logged in are only >> allowed to see the >> login-page or the error pages... >> */ >> return; >> } >> else >> { >> /* >> Users that is not logged in tried to >> request the application. >> I want to redirect him to a page >> 'sessionExpired' depending on >> his former loginType; this loginType I want to save on the website; >> */ >> >> // HERE THE LOGINTYPE WAS NOT reset to >> the Bean. is there any >> other possibility to read this value from the request? >> if(user.getLoginType() == 1) >> { >> >> event.getFacesContext().getExternalContext().redirect(JsfUtils.getKontextRoot() >> + "sessionExpired.jsf"); >> } >> else >> { >> // redirect him to another >> website >> } >> } >> } >> >> } >> } >> >> >> } >> > >