shiro为什么拦截不存在的请求

0 0 shiro java
帅气丶月半
帅气丶月半

声望值:104 0人

2018-07-10 13:15:11 提问

关注 0关注

收藏 0收藏, 154浏览

spring整合shiro后,在登陆认证之前会拦截不存在的请求:

这是我的loginrul配置:
项目启动后我输入一个不存在的地址:http://localhost:8080/demo/abc123,也会进入loginurl配置的signIn,demo是我的项目名,dbc123是一个不存在的请求。



web.xml配置:


    
    contextConfigLocationclasspath:spring/applicationContext-*.xmlorg.springframework.web.context.ContextLoaderListenerorg.springframework.web.util.IntrospectorCleanupListenerCharacterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8CharacterEncodingFilter/*shiroFilterorg.springframework.web.filter.DelegatingFilterProxytargetFilterLifecycletrueshiroFilter/*springmvc_restorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring/springmvc.xml1springmvc_rest/default/script/*/style/*/WEB-INF/html/*/login.html

spring-shiro配置:

    
    
    
                /script/**       = anon
                /style/**        = anon
                /WEB-INF/html/** = anon
                


                
                /logout = logout


                
                /** = authc
            

CustomFormAuthenticationFilter.java:

public class CustomFormAuthenticationFilter extends FormAuthenticationFilter {


    /**
     * 认证成功跳转到指定地址
     * @param token
     * @param subject
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @Override
    protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception {

        WebUtils.getAndClearSavedRequest(request);
        WebUtils.redirectToSavedRequest(request,response,"/index");

        return false;
    }
}

我大概知道问题是出在shiro的拦截器,可是我不明白为什么shiro拦截器会拦截不存在的请求,此时应该是404;
希望有了解过的人抽点时间帮我参考下,非常感谢!

请先 登录 后评论

1个回答

  • xyf76声望 2018-09-25 09:29

    没做机测,发表下我的想法,这应该和访问url有关系,abc123不一定是path,也可以参数${}类似这种形式,这样还是在访问你的工程,你设置的是/**=auth 应该会去校验权限,你试试多测试别的url,会不会出现。
    请先 登录 后评论

注册新账号

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问