java - Interceptor preHandle() not redirecting to login.html -


i have spring application. introduced sessioninterceptor prevent direct access index.jsp. if user not logged in shouldn't able access index.jsp , should redirected login.html. code hitting prehandle() method , running code after return false it's not redirecting login.html. what's wrong? gurus out there help? in advance.

my prehandle() in sessioninterceptor.java is:

public boolean prehandle(httpservletrequest request, httpservletresponse response, object handler) throws exception {          httpsession session = request.getsession();          // if displaying home page, make sure user reloaded.         if (request.getrequesturi().endswith("login.html")) {             session.removeattribute("isuserloggedin");         }          if (session.getattribute("isuserloggedin") == null && !request.getrequesturi().endswith("login")) {             response.sendredirect(request.getcontextpath() + "/login.html");             return false;                        }         return true;     } 

i have tried following in vain.

requestdispatcher dispatcher = request.getservletcontext().getrequestdispatcher("/login.html");                 dispatcher.forward(request, response); 

my dispatcher-servlet.xml settings are:

<bean id="sessioninterceptor" class="com.xxx.xxx.xxx.sessioninterceptor" /> <bean id="annotationmapper" class="org.springframework.web.servlet.mvc.annotation.defaultannotationhandlermapping">     <property name="interceptors">         <list>             <ref bean="sessioninterceptor" />         </list>     </property> </bean>  <!-- configures handler interceptors --> <mvc:interceptors>     <bean class="org.springframework.web.servlet.i18n.localechangeinterceptor" />     <mvc:interceptor>         <mvc:mapping path="/**" />         <bean class="com.xxx.xxx.xxx.sessioninterceptor" />     </mvc:interceptor> </mvc:interceptors> 

the web.xml is:

  <servlet-mapping>     <servlet-name>dispatcher</servlet-name>     <url-pattern>/rest/*</url-pattern>   </servlet-mapping>   <welcome-file-list>     <welcome-file>login.html</welcome-file>   </welcome-file-list> 

you can try redirecting logical path catched controller try

response.sendredirect("/notlogged"); 

and create function this:

@requestmapping(value = {"/notlogged"}, method = requestmethod.get) public string notlogged() {     return "login.html"; } 

i hope work you!


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -