---------------------------------------------------------------------------------------------------------------------------------
如果您看到了這篇文章並給您帶來了誤導真的是非常抱歉,修正一下內容,因為此問題的解決方法在初次存在偶然性,不知道是我的機器的問題還是軟件的問題,近期再次跑項目的時候發現這種解決辦法無法實現 靜態資源的放行,最后的解決辦法是在配置文件里
去掉靜態資源文件的映射,把這些“
#spring.mvc.static-path-pattern=classpath:/static/**
#這是靜態資源映射
#spring.resources.static-locations=classpath:/
#spring.resources.static-locations=classpath:/static/
通通干掉
”ShiroFilterFactoryBean 里面的內容不變。--------2020/3/24
---------------------------------------------------------------------------------------------------------------------------------
在springboot當中使用過濾器去做權限的驗證是非常蛋疼的事情,而學習使用springsecurity的難度和時間成本相對於shiro來說都要高很多。
Shiro 的配置和使用比較簡單,Spring Security 上手復雜些;
Shiro 依賴性低,不需要任何框架和容器,可以獨立運行.Spring Security 依賴Spring容器;
shiro 不僅僅可以使用在web中,還支持非web項目它可以工作在任何應用環境中。在集群會話時Shiro最重要的一個好處或許就是它的會話是獨立於容器的。
在springboot項目中成功整合shiro之后,會發現一個問題,靜態資源好像無法訪問了,折騰了快1個小時參考了網上很多資料最終找到了一個解決辦法
這是shiro過濾器當中的配置
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean(); bean.setSecurityManager(manager); Map<String, String> map = new LinkedHashMap<>(); //攔截的地址,后面的攔截項目,authc登錄攔截,perms權限攔截 map.put("/js/**", "anon"); map.put("/user/add","authc"); map.put("/user/update","authc"); map.put("/user/add","perms[user:add]"); map.put("/user/update","perms[user:update]"); bean.setFilterChainDefinitionMap(map); //如果沒有登錄的跳轉到登錄頁面 bean.setLoginUrl("/conlogin"); // 如果沒有權限跳轉到某個頁面,這里只是做簡單的配置 bean.setUnauthorizedUrl("/unAuthorized");
===================分割線以下是錯誤的內容請忽略============================
可能大家按照網上的很多參考資料會發現一個問題
我們的靜態資源還是無法拿到,這是怎么回事呢?如果你的springboot不是自己獨立創建的話可能會有一個問題,創建的人並沒有去映射靜態資源的路徑
我的測試項目中使用的是:application.properties這個配置文件沒有使用yml格式的配置文件,按照網上的資料檢查的時候發現沒有靜態文件的映射關系
抱着試一試的態度試了一下 添加 spring.mvc.static-path-pattern=classpath:/static/ 但是發現還是不起作用
server.port=8022 spring.resources.static-locations=classpath:/static/ spring.thymeleaf.suffix=.html spring.application.name = springboot-mybatis-plus spring.datasource.driver-class-name=com.mysql.jdbc.Driver
但是添加 spring.resources.static-locations=classpath:/static/ 這個之后問題就解決了。
但是還有一點就是項目的頁面的js引入的話需要
<script src="/js/jquery-2.1.4.js"></script> 這里不需要再加上static的路徑了。