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
Post a Comment