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

- spring-security:父模塊
- spring-security-browser:處理瀏覽器相關的授權認證,最終作為demo的一個jar依賴
- spring-security-core:一些授權認證的公共方法和類,并將公共依賴放在這里
- spring-security-demo:授權認證demo服務
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() // 表單登錄。跳轉到security默認的登錄表單頁
// http.httpBasic() //basic登錄
.and()
.authorizeRequests() // 對請求授權
.antMatchers("/noAuth").permitAll() //允許所有人訪問/noAuth
.anyRequest() // 任何請求
.authenticated()// 需要身份認證
;
}
}
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 {
/**
* 不需要認證的請求
*/
@GetMapping("/noAuth")
public String noAuth() {
return "noAuth";
}
/**
* 需要認證的請求
*/
@GetMapping("/user")
public String user() {
return "user";
}
}
啟動服務。在日志中,可以看到如下信息:
Using default security password: 90d9e73a-490c-484b-b7c5-5cd75c634e2f
這是security的默認密碼,在后面登錄時會用到
該服務端口為18081,在瀏覽器訪問 http://localhost:18081/noAuth,該請求是不需要認證的,所以直接進入到我們的服務,如下:

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

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

至此,最簡單的security配置完成~
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java連接postgresql數(shù)據(jù)庫的示例代碼
本篇文章主要介紹了Java連接postgresql數(shù)據(jù)庫的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
spring的applicationContext.xml文件與NamespaceHandler解析
這篇文章主要介紹了spring的applicationContext.xml文件與NamespaceHandler解析,Spring容器啟動,在創(chuàng)建BeanFactory時,需要加載和解析當前ApplicationContext對應的配置文件applicationContext.xml,從而獲取bean相關的配置信息,需要的朋友可以參考下2023-12-12
Springboot整合RabbitMq測試TTL的方法詳解
這篇文章主要介紹了Springboot整合RabbitMq測試TTL的設置,設置TTL一般由兩種設置方法,設置整個隊列的過期時間另一種設置單個消息的過期時間,通過示例圖文相結合給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03
基于SpringBoot2的Shiro最簡配置操作(兩個文件)
這篇文章主要介紹了基于SpringBoot2的Shiro最簡配置操作(兩個文件),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
SpringCloud Finchley Gateway 緩存請求Body和Form表單的實現(xiàn)
在接入Spring-Cloud-Gateway時,可能有需求進行緩存Json-Body數(shù)據(jù)或者Form-Urlencoded數(shù)據(jù)的情況。這篇文章主要介紹了SpringCloud Finchley Gateway 緩存請求Body和Form表單的實現(xiàn),感興趣的小伙伴們可以參考一下2019-01-01
Java 重命名 Excel 工作表并設置工作表標簽顏色的示例代碼
這篇文章主要介紹了Java 重命名 Excel 工作表并設置工作表標簽顏色的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10

