Spring Security是一個能夠為基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反轉Inversion of Control ,DI:Dependency Inje ...
Spring Security是一個能夠為基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反轉Inversion of Control ,DI:Dependency Injection 依賴註入)和AOP(面向切麵編程)功能,為應用系統提供聲明式的安全訪問控制功能,減少了為企業系統安全控制編寫大量重覆代碼的工作。
v基於formLogin認證
1.1 添加maven引用<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>1.2 配置應用屬性
server.port=83001.3 添加demo的controller
/** * @Author chen bo * @Date 2023/12 * @Des */ @RestController public class HomeController { @GetMapping("/hello") public String hello(){ return "Security demo."; } }1.4 運行項目
當Spring項目中引入了Spring Security依賴的時候,項目會預設開啟如下配置:security.basic.enabled=true
這個配置開啟了一個表單認證,所有服務的訪問都必須先過這個認證,預設的用戶名為user,密碼由Sping Security自動生成,回到IDE的控制台,可以找到密碼信息:
運行項目並訪問http://localhost:8300/hello 效果圖如下:
輸入對應的預設用戶名user,和輸入ide控制台列印的密碼,即可完成登錄授權成功請求介面。
v基於HttpBasic認證
HttpBasic驗證方式是Spring Security中實現登錄最簡單的方式,這種方式並不安全,不適合web項目中使用,但是它是 一些主流認證的基礎,spring security中預設的認證就是HttpBasic。
創建一個配置類(如SecurityConfig)繼承org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter,這個抽象類並重寫configure(HttpSecurity http)方法。 WebSecurityConfigurerAdapter是由Spring Security提供的Web應用安全配置的適配器:
/** * @Author chen bo * @Date 2023/12 * @Des */ @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.httpBasic() // HttpBasic // http.formLogin() // 表單方式 .and() .authorizeRequests() // 授權配置 .anyRequest() // 所有請求 .authenticated(); // 都需要認證 } }
運行項目並訪問http://localhost:8300/hello 效果圖如下:
Spring Security預設是使用form驗證登錄的,但是form會比基礎驗證稍微慢一點,當然也安全一些。如果是內部使用不需要form的話,則可以考慮使用HttpBasic驗證方式。
v自定義用戶名和密碼
如果我們不想每次去查看Spring Security隨機提供的密碼以及我們想使用我們自己的用戶名,那我我們只需要簡單配置一下就可以實現。
更新配置spring.security.user.name=xxxxxx
spring.security.user.password=xxxxxx
v源碼地址
https://github.com/toutouge/javademosecond/tree/master/security-demo
作 者:請叫我頭頭哥
出 處:http://www.cnblogs.com/toutou/
關於作者:專註於基礎平臺的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
特此聲明:所有評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!