作為千禧年一代,我們很多人生活在這個網際網路的時代,享受著網際網路給我們帶來的驚喜,卻經常忽略它給我們帶來的一些不好的東西。
人們常說任何事物的發展都是一把「雙刃劍」,給我們帶來便利的同時也會帶來一些麻煩;網際網路技術也是這樣,它改變了我們的生活方式,比如:以微信為代表的社交方式,以支付寶、微信為代表的的支付方式、以滴滴為代表的出行方式等,但同時它也讓我們的信息更加容易獲取和不安全,如果有一天微信和支付寶不知道哪根神經搭錯了,覺得錢不夠花,倆人一合計,把你的購物和社交的信息都放到網上賣了,估計你也沒辦法,當然這種假設幾乎是不太可能發生的。但是網際網路的發展確實是存在著一些比較容易被人們忽略的安全問題。
當年的3Q大戰,曾經坊間「刪庫跑路」的傳說,竟然成了現實;我們暫且不去討論這些事情本身,這背後都傳達了一個信息,就是安全很重要;如果你要是問我什麼是網際網路公司(所有公司)中最重要的事情,那一定是安全!安全!安全!重要的事情說三遍。
作為一名程序猿,在Web應用開發中,安全永遠是產品的最基礎需求,也是最重的技術,想像一下,你們熬夜通宵吃泡麵花了幾個月做了一狂轉炫酷吊炸天的網站,結果被一個剛入行的毛頭小夥兒一下高掛了,以後還有何顏面在這一行混。
在Web開發過程中有一些比較常見的黑客攻擊方式,比如:XSS(跨站腳本攻擊)、CSRF(跨站請求偽造攻擊)、SQL注入、命令行注入、DDoS攻擊、DNS劫持等,據史料記載,程序猿這個群體都有一種特質是:在Get到一個新技術的時候一定會去騷擾一下別人的網站去證明自己技術有多牛逼(我也這麼幹過,邪惡臉)。
沒有攻擊過別人的網站的黑客,不是好程序猿!
對於Java攻城獅來說,Web應用的安全的重要性自然是不言而喻的,那在JavaWeb開發領域也有很多解決安全性的框架,常用的有
Spring SecurityShiro今天先來了解下SpringSecurity這個安全管理框架
什麼是SpringSecurity
SpringSecurity是一個基於Spring的企業應用系統安全訪問控制解決方案的安全框架,從名字我們也可以看出來它和Spring有著千絲萬縷的關係,所以它可以和Spring進行無縫集成,對於Web應用的安全性,如用戶認證(是否是合法用戶)和用戶授權(是否具有某種權限)SpringSecurity都提供了很好支持,並且支持自定義,給開發人員提供了更大的靈活性。今天咱們就來學習一下使用SpringBoot 集成SpringSecurity,我們都知道SpringBoot也是基於Spring的,所以SpringBoot對於SpringSecurity也提供很好的支持,通常情況下,Spring生態內的技術在使用的時候都是比較容易上手的,接下裡就讓我們實戰為先吧!
Spring Boot 集成SpringSecurity
創建SpringBoot項目工程
首先,使用SpringInitializr創建SpringBoot 基礎工程,然後引入web依賴。接著我們就需要引入SpringSecurity了,引入SpringSecurity依賴有兩種方式:
在工程的pom文件中加入Spring Security依賴。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>使用Spring Initializr在創建項目的時直接勾選Spring Security,項目建成後會自動在pom文件加入Spring Security的依賴。
添加SpringSecurity配置信息
在application.properties中添加SpringSecurity的相關配置信息,這裡主要配置登錄用戶名和密碼。
# Spring Security配置
# 配置登錄用戶的名
spring.security.user.name=admin
# 登錄密碼
spring.security.user.password=admin
SpringSecurity初體驗
創建一個SecurityController,編寫測試方法,然後直接啟動項目,通過瀏覽器訪問http://localhost:8080/index首頁資源。
/*** Security登錄驗證demo*/@RestControllerpublic class SecurityController {/*** 首頁資源* @return/*@GetMapping("index") public String index() { return "登錄成功!!!--歡迎來到Spring Security!!!"; }}
發現頁面被重定向到了一個http://localhost:8080/login路徑,需要我們登錄驗證,這個就是Spring Security默認提供的登錄頁面(其實還提好看的如果不喜歡的話,自己也可以定製);也就是它對所有的資源都做了權限校驗,只有合法的用戶才可以訪問。
然後,輸入我們剛才在application.properties配置了登錄的用戶名和密碼,輸入之後我們看到了如下:
我們成功的訪問到了首頁的資源,此時說明我們合法了,以後再也不用擔心查水錶了,是不是很簡單呢?