Springboot整合shiro時靜態資源被攔截的問題
阿新 • • 發佈:2019-02-03
目錄結構如下
在自己配置的ShiroConfig中已經放行了
filterChainDefinitionMap.put("/static/**", "anon");
login.ftl也引用了靜態資源
<link rel="stylesheet" type="text/css" href="/logins/css/normalize.css" /> <link rel="stylesheet" type="text/css" href="/logins/css/demo.css" /> <link rel="stylesheet" href="/logins/js/vendor/jgrowl/css/jquery.jgrowl.min.css">
可是資源依然被攔截了
於是註釋掉了
//filterChainDefinitionMap.put("/**", "authc");
靜態資源可以訪問了, 說明不是shiro的內在問題.
經過一番考慮, 感覺像是靜態資源路徑的問題, 於是在瀏覽器控制檯看一下source的路徑, 發現靜態資源的路徑前面是沒有static的, 因而shiro也不會放行.
springboot預設會將static目錄中的內容做為classes根目錄的內容釋出到web伺服器, 所以如果想要放行靜態資源, 同時又要實現攔截/**請求, 那麼我的解決辦法是:
解決辦法
目錄改造如下:
攔截配置:
filterChainDefinitionMap.put("/statics/**", "anon");
filterChainDefinitionMap.put("/**", "authc");
重啟web伺服器, 清除瀏覽器快取, 此時source中已經是正確的路徑了, 靜態資源被引用了.問題解決
記錄一下自己犯得低階錯誤, 見笑見笑 (笑哭臉)