使用Spring?Security搭建極簡的安全網站教程
Spring Security 簡介
Spring Security 項目是一個安全框架,提供了認證,授權和常見的網絡攻擊保護功能。在基于 Spring 開發(fā)的應用中,Spring Security 是一個被廣泛應用的安全框架,成為了實際的標準。與所有 Spring 項目類似,Spring Security 易于擴展,滿足定制要求。主要特點如下:
- 對認證和授權的全面、可擴展的支持
- 防范會話固定攻擊、點擊劫持攻擊和跨站點偽造攻擊等風險
- Servlet API 集成
- Spring Web MVC 集成
- 還有更多…
本文將搭建一個極簡的項目,初步體驗一下 Spring Security.
創(chuàng)建項目
開發(fā)工具使用 IntelliJ IDEA
,也可以選擇自己喜歡的集成開發(fā)工具。
首先,打開新建項目向導,選擇 Spring Initializr
向導。
然后,填寫項目的配置信息。
接著,選擇 Spring Web
和 Spring Security
兩個依賴模塊。
Spring Security 依賴
最后,選擇項目的保存路徑,完成項目創(chuàng)建。
安全配置
完成項目創(chuàng)建后,在 pom.xml
中,會出現(xiàn)下面兩個依賴配置,分別對應 Spring Security
和 Spring Web
.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
首次運行項目
直接運行上面創(chuàng)建的項目,訪問項目首頁:http://localhost:8080/
. 你會發(fā)現(xiàn),出現(xiàn)的不是首頁,而是一個登錄頁面(雖然樣子有點丑)。
Spring Security 默認登錄頁面
這就說明了一個問題。雖然我們還沒有寫一行代碼,但是,首頁的 URL 已經被 Spring Security 保護起來了,需要登錄才能訪問。
那么,如何登錄呢?Spring Security 默認為我們創(chuàng)建了一個用戶:user。該用戶的登錄口令需要從控制臺輸出查詢:
Using generated security password: 0d243837-c61c-4717-b30a-9f6ff783b69e
登錄成功后,出現(xiàn)下面的頁面。
未配置首頁
因為我們沒有配置首頁的 URL 路徑,所以首頁顯示有問題。但是,用戶登錄已經成功了,起到了資源保護作用。
添加控制器
接下來,我們添加一個控制器,讓首頁能夠正常顯示。
@RestController public class HomeController { @GetMapping("/") public String home() { return "Welcome to Learn Spring Security."; } }
再次運行項目
重新啟動運行項目,訪問首頁。再次登錄成功后,首頁正常顯示。
已配置首頁
注意:每次啟動項目,產生的隨機登錄口令都不相同。因此,重啟項目后,需要重新拷貝控制臺中輸出的登錄口令。
源代碼 Github: https://github.com/nilpoint/spring-security-sample
小結
本文創(chuàng)建了一個基本的 Web 訪問安全控制項目,了解了 Spring Security 對資源保護 的一些默認配置行為。下一篇文章中,我們就對這些默認行為做進一步研究,更多關于Spring Security搭建網站的資料請關注腳本之家其它相關文章!
相關文章
詳解Java編程中final,finalize,finally的區(qū)別
這篇文章主要介紹了詳解Java編程中final,finalize,finally的區(qū)別,這個在Java面試題中簡直是太常見了...需要的朋友可以參考下2015-11-11詳談Java中instanceof和isInstance的區(qū)別
下面小編就為大家?guī)硪黄斦凧ava中instanceof和isInstance的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01springboot?整合?clickhouse的實現(xiàn)示例
本文主要介紹了springboot?整合?clickhouse的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02