Spring Security基本配置方法解析
Spring Security 是一個功能強(qiáng)大且可高度自定義的身份驗證和訪問控制框架。 它是保護(hù)基于Spring的應(yīng)用程序的事實上的標(biāo)準(zhǔn)。
Spring Security 是一個專注于為Java應(yīng)用程序提供身份驗證和授權(quán)的框架。 與所有Spring項目一樣,Spring Security的真正強(qiáng)大之處在于它可以輕松擴(kuò)展以滿足自定義要求
先建立一個maven多模塊工程,如下:

- spring-security:父模塊
- spring-security-browser:處理瀏覽器相關(guān)的授權(quán)認(rèn)證,最終作為demo的一個jar依賴
- spring-security-core:一些授權(quán)認(rèn)證的公共方法和類,并將公共依賴放在這里
- spring-security-demo:授權(quán)認(rèn)證demo服務(wù)
spring-security-core
pom依賴:
<!-- 工具類包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<!-- thymeleaf-視圖解析 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring-security-browser
pom依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.xwj</groupId>
<artifactId>spring-security-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Security配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.formLogin() // 表單登錄。跳轉(zhuǎn)到security默認(rèn)的登錄表單頁
// http.httpBasic() //basic登錄
.and()
.authorizeRequests() // 對請求授權(quán)
.antMatchers("/noAuth").permitAll() //允許所有人訪問/noAuth
.anyRequest() // 任何請求
.authenticated()// 需要身份認(rèn)證
;
}
}
spring-security-demo
pom依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.xwj</groupId>
<artifactId>spring-security-browser</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Controller中:
@RestController
@RequestMapping
public class IndexController {
/**
* 不需要認(rèn)證的請求
*/
@GetMapping("/noAuth")
public String noAuth() {
return "noAuth";
}
/**
* 需要認(rèn)證的請求
*/
@GetMapping("/user")
public String user() {
return "user";
}
}
啟動服務(wù)。在日志中,可以看到如下信息:
Using default security password: 90d9e73a-490c-484b-b7c5-5cd75c634e2f
這是security的默認(rèn)密碼,在后面登錄時會用到
該服務(wù)端口為18081,在瀏覽器訪問 http://localhost:18081/noAuth,該請求是不需要認(rèn)證的,所以直接進(jìn)入到我們的服務(wù),如下:

再訪問 http://localhost:18081/user,該請求是需要認(rèn)證的,會先跳到security默認(rèn)的登錄頁(也可以自定義登錄頁),如下:

用戶名隨便輸入,密碼為日志中打印的密碼:90d9e73a-490c-484b-b7c5-5cd75c634e2f
點(diǎn)擊login按鈕,登錄成功,返回一個user。當(dāng)重新訪問這個請求時,由于已經(jīng)認(rèn)證過了,所以現(xiàn)在可以直接訪問了

至此,最簡單的security配置完成~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring Security實現(xiàn)兩周內(nèi)自動登錄"記住我"功能
- 詳解使用Spring Security進(jìn)行自動登錄驗證
- SpringSecurity動態(tài)加載用戶角色權(quán)限實現(xiàn)登錄及鑒權(quán)功能
- SpringSecurity退出功能實現(xiàn)的正確方式(推薦)
- 解析SpringSecurity自定義登錄驗證成功與失敗的結(jié)果處理問題
- Spring Security Remember me使用及原理詳解
- 使用Spring Security OAuth2實現(xiàn)單點(diǎn)登錄
- spring security實現(xiàn)下次自動登錄功能過程解析
相關(guān)文章
Spring Boot集成Thymeleaf模板引擎的完整步驟
這篇文章主要給大家介紹了關(guān)于Spring Boot集成Thymeleaf模板引擎的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
IntelliJ Idea常用11款插件(提高開發(fā)效率)
這篇文章主要介紹了IntelliJ Idea常用11款插件(提高開發(fā)效率),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
springboot接收前端參數(shù)的四種方式圖文詳解
Spring Boot可以通過多種方式接收前端傳遞的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于springboot接收前端參數(shù)的四種方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Spring?Boot?+?EasyExcel實現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出
這篇文章主要介紹了Spring?Boot+EasyExcel實現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08
Spring實戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作示例
這篇文章主要介紹了Spring實戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作,結(jié)合實例形式分析了靜態(tài)工廠方法創(chuàng)建Bean的相關(guān)實現(xiàn)步驟與操作注意事項,需要的朋友可以參考下2019-11-11

