Model view controller 如何从spring拦截器转发到特定的带注释的处理程序?
我编写了一个用于身份验证的Spring请求拦截器,它扩展了HandlerInterceptorAdapter。我在servlet上下文中使用这一行进行了设置:Model view controller 如何从spring拦截器转发到特定的带注释的处理程序?,model-view-controller,spring,interceptor,Model View Controller,Spring,Interceptor,我编写了一个用于身份验证的Spring请求拦截器,它扩展了HandlerInterceptorAdapter。我在servlet上下文中使用这一行进行了设置: <mvc:interceptors> <bean class = "it.jsoftware.jacciseweb.controllers.AuthInterceptor"> <property name="manServ" ref = "acciseService"
<mvc:interceptors>
<bean class = "it.jsoftware.jacciseweb.controllers.AuthInterceptor">
<property name="manServ" ref = "acciseService"></property>
</bean>
</mvc:interceptors>
不管怎样,它都会生成一个重定向循环,因为由于拦截和重定向,它永远不会到达重定向页面
有很多方法可以解决这个问题,但我不知道如何实现:
不使用spring security有具体原因吗 IMHO简单、功能强大且经过深入测试
您可以简单地实现并注入自定义验证器,spring security将处理重定向。不使用spring security有具体原因吗 IMHO简单、功能强大且经过深入测试 您可以简单地实现并注入自定义验证器,spring security将处理重定向
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession sess = request.getSession();
String path = request.getPathTranslated();
boolean autenticated = maincont.isAuthenticated(sess);
if (!autenticated){
response.sendRedirect("accise?action=login");
return false;
}
return super.preHandle(request, response, handler);
}