apache shiro过滤器authc和用户的情况/ **

时间:2017-12-14 09:59:43

标签: spring-boot shiro

这是我的代码的一部分。

...
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();

filterChainDefinitionMap.put("/favicon.ico", "anon");
filterChainDefinitionMap.put("/css/**", "anon");
filterChainDefinitionMap.put("/js/**", "anon");

filterChainDefinitionMap.put("/logout", "logout");

filterChainDefinitionMap.put("/**", "authc");
...

我在我的过滤器链末尾将/**设置为authc,但当我尝试访问ip:port/favicon.ico时,它会将我重定向到/login页面。以前的所有anon定义都不起作用。

但是当我将/**更改为user时,现在一切正常。

filterChainDefinitionMap.put("/**", "user");
  

依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.BUILD-SNAPSHOT</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>
...
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.4.0</version>
</dependency>
...

1 个答案:

答案 0 :(得分:0)

这是你的问题,这是问题的原因。 https://github.com/zymint/shiro-example/blob/master/tp/src/main/java/tp/softfly/config/shiro/ShiroConfig.java#L25-L27

表单过滤器只需用于/ login路由。不是为所有路线定制的。删除这些行可以解决问题