这是我的代码的一部分。
...
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>
...
答案 0 :(得分:0)
这是你的问题,这是问题的原因。 https://github.com/zymint/shiro-example/blob/master/tp/src/main/java/tp/softfly/config/shiro/ShiroConfig.java#L25-L27
表单过滤器只需用于/ login路由。不是为所有路线定制的。删除这些行可以解决问题