Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

第 9 章 Spring Security

目錄

9.1. Spring Security with HTTP Auth
9.1.1. 預設配置
9.1.2. 設置用戶名和密碼
9.1.3. 禁用 Security
9.2. Spring boot with Spring security
9.2.1. Maven
9.2.2. Reource
9.2.3. Application
9.2.4. WebSecurityConfigurer
9.2.5. RestController
9.2.6. 測試
9.2.7. Spring + Security + MongoDB
9.2.7.1. Account
9.2.7.2. AccountRepository
9.2.7.3. WebSecurityConfiguration
9.3. Spring Boot with Web Security
9.3.1. EnableWebSecurity
9.3.2. Web靜態資源
9.3.3. 正則匹配
9.3.4. 登陸頁面,失敗頁面,登陸中頁面
9.3.5. CORS
9.3.6. X-Frame-Options 安全
9.4. 訪問控制列表(Access Control List,ACL)
9.4.1. antMatchers
9.4.2. HTTP Auth
9.4.3. Rest
9.4.4. hasRole
9.4.5. hasAnyRole()
9.4.6. withUser
9.4.6.1. 添加用戶
9.4.6.2. 添加多個用戶,並指定角色
9.4.6.3. 獲取當前用戶
9.5. Spring Authorization Server
9.5.1. Oauth2 協議
9.5.1.1. token
9.5.1.2. grant_type
9.5.1.3. 授權碼授權模式(Authorization Code Grant)
9.5.1.4. 密碼模式(Resource Owner Password Credentials Grant)
9.5.1.5. 客戶端憑證模式(Client Credentials Grant)
9.5.1.6. 刷新 TOKEN 方式
9.5.2. Maven 依賴
9.5.3. Spring cloud with Oauth2
9.5.3.1. authorization_code
9.5.3.1.1. 驗證伺服器器
9.5.3.2. Spring boot with Oauth2 - Password
9.5.3.2.1. Maven
9.5.3.2.2. Password tools
9.5.3.2.3. Server
9.5.3.2.4. Spring boot with Oauth2 RestTemplate
9.5.3.3. Spring boot with Oauth2 jwt
9.5.3.3.1. Maven
9.5.3.3.2. Authorization Server
9.5.3.3.3. Resource Server
9.5.3.3.4. Web Security
9.5.3.3.5. 插入數據
9.5.3.3.6. 使用 CURL 測試 JWT
9.5.3.3.7. 測試 Shell
9.5.3.3.8. refresh_token
9.5.3.4. Spring boot with Oauth2 jwt 非對稱證書
9.5.3.4.1. 創建證書
9.5.3.4.2. Authorization Server
9.5.3.4.3. Resource Server
9.5.3.5. Apple iOS 訪問 Oauth2
9.5.3.6. Oauth2 客戶端
9.5.3.6.1.
9.5.3.6.2. application.yml
9.5.3.6.3. SpringApplication
9.5.3.6.4. WebSecurityConfigurer
9.5.3.6.5. TestController
9.5.3.7. Android Oauth2 + Jwt example
9.5.3.8. RestTemplate 使用 HttpClient
9.5.3.8.1. Maven
9.5.3.8.2. SpringBootApplication
9.5.3.8.3. ClientRestController
9.5.3.8.4. Test
9.5.3.9. 自簽名證書信任問題
9.5.3.10. Principal
9.5.3.11. SecurityContextHolder 對象
9.5.3.12. 資源伺服器配置
9.5.3.12.1. access()
9.5.3.13. Client
9.5.3.13.1. Overriding Spring Boot 2.0 Auto-configuration
9.5.3.14. Oauth2 常見問題
9.5.3.14.1. 修改 /oauth/token 路徑
9.5.3.14.2. password 認證方式靜態配置用戶列表

9.1. Spring Security with HTTP Auth

9.1.1. 預設配置

如果在 maven 中引入了 spring security當你啟動 springboot 的時候會提示

			
Using generated security password: 1cd27b90-1208-4be2-ae8e-0f564ee427b8			
			
			

預設用戶名是 user 可以這樣訪問

			
neo@MacBook-Pro ~ % curl -s http://user:1cd27b90-1208-4be2-ae8e-0f564ee427b8@localhost:8080/member/json
{"status":false,"reason":"","code":0,"data":{}} 			
			
			

9.1.2. 設置用戶名和密碼

			
spring.security.user.name=test
spring.security.user.password=test
spring.security.user.role=USER		
			
			

注意 Springboot 1.x

			
security.user.name=test
security.user.password=passw0rdf
security.user.role=USER
			
			

9.1.3. 禁用 Security

方法一

			
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class Application {
	public static void main(String[] args) {
		System.out.println("Web Starting...");
		SpringApplication.run(Application.class, args);
	}
}
			
			

Springboot 1.x 可以在 appliction.properties 中加入

			
security.basic.enabled=false