Model view controller 如何从spring拦截器转发到特定的带注释的处理程序?

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"

我编写了一个用于身份验证的Spring请求拦截器,它扩展了HandlerInterceptorAdapter。我在servlet上下文中使用这一行进行了设置:

<mvc:interceptors>

        <bean class = "it.jsoftware.jacciseweb.controllers.AuthInterceptor">
            <property name="manServ" ref = "acciseService"></property>
        </bean>
    </mvc:interceptors>
不管怎样,它都会生成一个重定向循环,因为由于拦截和重定向,它永远不会到达重定向页面

有很多方法可以解决这个问题,但我不知道如何实现:

  • 检测请求的url(但我不知道如何),不检查登录页面的身份验证。此外,我想使这个解决方案更加灵活
  • 直接在控制器上选择登录处理程序。我该怎么做?可能吗
  • 我已经看到,在示例中,人们使用org.springframework.web.servlet.handler.simplerlhandlermapping指定拦截器映射,不管怎样,我使用的是注释。有没有一种方法可以使用注释为拦截器指定不同的映射,这样拦截器就不会使用上述地址触发(accise?action=login)?或者可以链接不同的映射方案
    不使用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);
        }