Springboot?Shiro?anno不啟作用問題及解決
1. 分析
之前在Shiro中沒有配置過靜態(tài)資源過濾,這次在配置過程中給予靜態(tài)資源anno發(fā)現(xiàn)還是會被攔截,查閱其它文章,基本上都是在說LinkedHashMap 過濾次序問題,但我最初就是這個,因此排除。
后再翻閱相關(guān)文章的時候,看到了一位博主在文章中說不要將過濾器注冊到容器中即可,自己手動創(chuàng)建過濾器??!
然后查看我的代碼,果然將過濾器注冊到了容器中,將其拿掉,然后在shiroconfig中@Autowired JwtFilter jwtfilter 改成 new JwtFilter()即可。

2. 具體代碼
@Bean
public ShiroFilterChainDefinition shiroFilterChainDefinition() {
DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
Map<String, String> filterMap = new LinkedHashMap<>();
// swagger2頁面
filterMap.put("/swagger-ui.html", "anon");
filterMap.put("/swagger/**", "anon");
filterMap.put("/swagger-resources/**", "anon");
filterMap.put("/v2/**", "anon");
filterMap.put("/webjars/**", "anon");
filterMap.put("/webjars.bycdao-ui/**", "anon");
filterMap.put("/configuration/**", "anon");
filterMap.put("/doc.html", "anon");
filterMap.put("/**", "jwt"); // 主要通過注解方式校驗權(quán)限
chainDefinition.addPathDefinitions(filterMap);
return chainDefinition;
}
@Bean("shiroFilterFactoryBean")
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager,ShiroFilterChainDefinition shiroFilterChainDefinition) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
Map<String, Filter> filters = new HashMap<>();
// ---------------------------------------------------
filters.put("jwt", new JwtFilter()); // 修改處
shiroFilter.setFilters(filters);
Map<String, String> filterMap = shiroFilterChainDefinition.getFilterChainMap();
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
若在JwtFilter 使用到JwtUtil類判斷tk是否過期等,而JwtUtil 同樣不要注冊到容器中,不然可能請求會報錯
Not authorized to invoke method
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問題
這篇文章主要介紹了關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
java如何動態(tài)執(zhí)行while循環(huán)
這篇文章主要介紹了java如何動態(tài)執(zhí)行while循環(huán)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot?整合數(shù)據(jù)源的具體實踐
本文主要介紹了SpringBoot?整合數(shù)據(jù)源的具體實踐,利用?Spring?Boot?的自動配置和簡化的注解來簡化數(shù)據(jù)源配置工作,從而更專注于應(yīng)用程序的業(yè)務(wù)邏輯開發(fā),感興趣的可以了解一下2023-11-11
Java線上問題排查神器Arthas實戰(zhàn)原理解析
原先我們Java中我們常用分析問題一般是使用JDK自帶或第三方的分析工具如jstat、jmap、jstack、?jconsole、visualvm、Java?Mission?Control、MAT等,還有一款神器Arthas工具,可幫助程序員解決很多繁瑣的問題,感興趣的朋友一起看看吧2022-01-01
Springboot實現(xiàn)ENC加密的詳細(xì)流程
在項目開發(fā)過程中,需要配置數(shù)據(jù)庫連接密碼、Redis密碼、網(wǎng)盤上傳的AK/SK等敏感信息,都需要保存在配置文件里,或者配置中心,這些信息如果泄露,還是會造成一定的困擾,下面這篇文章主要給大家介紹了關(guān)于Springboot實現(xiàn)ENC加密的詳細(xì)流程,需要的朋友可以參考下2023-06-06

