// 添加拦截器 Map<String, String> filterRuleMap = new LinkedHashMap<>(); //配置可以访问的路径 filterRuleMap.put("/login/**","anon"); //对所有请求认证,这一步必须放在后面,不然会有问题 filterRuleMap.put("/**", "user"); filterRuleMap.put("/**", "jwt"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterRuleMap); 在其他地方如何获取到filterRuleMap
时间: 2024-02-24 18:53:53 浏览: 129
在其他地方获取到 `filterRuleMap` 可以通过 `shiroFilterFactoryBean` 对象来实现。具体来说,可以在其他类中通过 `@Resource` 或者 `@Autowired` 注解来注入 `shiroFilterFactoryBean` 对象,然后就可以通过这个对象获取到 `filterChainDefinitionMap` 属性,即 `filterRuleMap`。示例如下:
```java
@Component
public class SomeClass {
@Autowired
private ShiroFilterFactoryBean shiroFilterFactoryBean;
public void someMethod() {
Map<String, String> filterRuleMap = shiroFilterFactoryBean.getFilterChainDefinitionMap();
// 可以使用filterRuleMap进行后续处理
}
}
```
在这个示例中,我们在 `SomeClass` 类中注入了 `ShiroFilterFactoryBean` 对象,并在 `someMethod` 方法中获取到了 `filterChainDefinitionMap` 属性,即 `filterRuleMap`,然后就可以对其进行后续的处理。需要注意的是,在注入 `ShiroFilterFactoryBean` 对象之前,需要保证 `ShiroFilterFactoryBean` 已经被实例化。如果使用的是 Spring Boot,可以在 `ShiroConfig` 类中使用 `@Bean` 注解来定义 `ShiroFilterFactoryBean`,这样就可以保证在其他类中注入时已经被实例化。
阅读全文