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

2. 具體代碼
@Bean
public ShiroFilterChainDefinition shiroFilterChainDefinition() {
DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
Map<String, String> filterMap = new LinkedHashMap<>();
// swagger2頁(yè)面
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"); // 主要通過(guò)注解方式校驗(yàn)權(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類(lèi)判斷tk是否過(guò)期等,而JwtUtil 同樣不要注冊(cè)到容器中,不然可能請(qǐng)求會(huì)報(bào)錯(cuò)
Not authorized to invoke method
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問(wèn)題
這篇文章主要介紹了關(guān)于socket發(fā)送數(shù)據(jù)需要注意的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
java如何動(dòng)態(tài)執(zhí)行while循環(huán)
這篇文章主要介紹了java如何動(dòng)態(tài)執(zhí)行while循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
java實(shí)現(xiàn)員工工資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)員工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
java正則表達(dá)式校驗(yàn)篇(附詳細(xì)代碼示例)
正則表達(dá)式可以用來(lái)驗(yàn)證字符串是否符合某種模式,可以用來(lái)搜索、校驗(yàn)和替換字符串,這篇文章主要介紹了java正則表達(dá)式校驗(yàn)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-07-07
SpringBoot?整合數(shù)據(jù)源的具體實(shí)踐
本文主要介紹了SpringBoot?整合數(shù)據(jù)源的具體實(shí)踐,利用?Spring?Boot?的自動(dòng)配置和簡(jiǎn)化的注解來(lái)簡(jiǎn)化數(shù)據(jù)源配置工作,從而更專(zhuān)注于應(yīng)用程序的業(yè)務(wù)邏輯開(kāi)發(fā),感興趣的可以了解一下2023-11-11
Java線(xiàn)上問(wèn)題排查神器Arthas實(shí)戰(zhàn)原理解析
原先我們Java中我們常用分析問(wèn)題一般是使用JDK自帶或第三方的分析工具如jstat、jmap、jstack、?jconsole、visualvm、Java?Mission?Control、MAT等,還有一款神器Arthas工具,可幫助程序員解決很多繁瑣的問(wèn)題,感興趣的朋友一起看看吧2022-01-01
Springboot實(shí)現(xiàn)ENC加密的詳細(xì)流程
在項(xiàng)目開(kāi)發(fā)過(guò)程中,需要配置數(shù)據(jù)庫(kù)連接密碼、Redis密碼、網(wǎng)盤(pán)上傳的AK/SK等敏感信息,都需要保存在配置文件里,或者配置中心,這些信息如果泄露,還是會(huì)造成一定的困擾,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)ENC加密的詳細(xì)流程,需要的朋友可以參考下2023-06-06
springboot如何讀取配置文件到靜態(tài)工具類(lèi)
這篇文章主要介紹了springboot實(shí)現(xiàn)讀取配置文件到靜態(tài)工具類(lèi)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

