Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

第 5 章 Spring Security

目录

5.1. Spring Security with HTTP Auth
5.1.1. 默认配置
5.1.2. 设置用户名和密码
5.1.3. 禁用 Security
5.2. Spring boot with Spring security
5.2.1. Maven
5.2.2. Reource
5.2.3. Application
5.2.4. WebSecurityConfigurer
5.2.5. RestController
5.2.6. 测试
5.2.7. Spring + Security + MongoDB
5.2.7.1. Account
5.2.7.2. AccountRepository
5.2.7.3. WebSecurityConfiguration
5.3. Spring Boot with Web Security
5.3.1. EnableWebSecurity
5.3.2. Web静态资源
5.3.3. 正则匹配
5.3.4. 登陆页面,失败页面,登陆中页面
5.3.5. CORS
5.3.6. X-Frame-Options 安全
5.4. 访问控制列表(Access Control List,ACL)
5.4.1. antMatchers
5.4.2. HTTP Auth
5.4.3. Rest
5.4.4. hasRole
5.4.5. hasAnyRole()
5.4.6. withUser
5.4.6.1. 添加用户
5.4.6.2. 添加多个用户,并指定角色
5.4.6.3. 获取当前用户
5.5. Spring cloud with Oauth2
5.5.1. Oauth2 协议
5.5.1.1. token
5.5.1.2. grant_type
5.5.1.3. 授权码授权模式(Authorization Code Grant)
5.5.1.4. 密码模式(Resource Owner Password Credentials Grant)
5.5.1.5. 客户端凭证模式(Client Credentials Grant)
5.5.1.6. 刷新 TOKEN 方式
5.5.2. authorization_code
5.5.2.1. 验证服务器器
5.5.2.1.1.
5.5.2.1.2.
5.5.2.1.3.
5.5.2.1.4.
5.5.2.1.5. 测试
5.5.3. Spring boot with Oauth2 - Password
5.5.3.1. Maven
5.5.3.2. Password tools
5.5.3.3. Server
5.5.3.3.1. Maven
5.5.3.3.2. application.properties
5.5.3.3.3. EnableAuthorizationServer
5.5.3.3.4. EnableResourceServer
5.5.3.3.5. Entity Table
5.5.3.3.6. UserRepository
5.5.3.3.7. UserService
5.5.3.3.8. TestRestController
5.5.3.3.9. 数据库初始化
5.5.3.3.10. Test
5.5.3.4. Spring boot with Oauth2 RestTemplate
5.5.3.4.1. Maven
5.5.3.4.2. OAuth2ClientConfiguration.java
5.5.3.4.3. Application.java
5.5.3.4.4. application.properties
5.5.3.4.5. Controller
5.5.3.4.6. Test
5.5.4. Spring boot with Oauth2 jwt
5.5.4.1. Maven
5.5.4.2. Authorization Server
5.5.4.3. Resource Server
5.5.4.4. Web Security
5.5.4.5. 插入数据
5.5.4.6. 使用 CURL 测试 JWT
5.5.4.7. 测试 Shell
5.5.4.8. refresh_token
5.5.5. Spring boot with Oauth2 jwt 非对称证书
5.5.5.1. 创建证书
5.5.5.2. Authorization Server
5.5.5.3. Resource Server
5.5.6. Apple iOS 访问 Oauth2
5.5.7. Oauth2 客户端
5.5.7.1.
5.5.7.2. application.yml
5.5.7.3. SpringApplication
5.5.7.4. WebSecurityConfigurer
5.5.7.5. TestController
5.5.8. Android Oauth2 + Jwt example
5.5.9. RestTemplate 使用 HttpClient
5.5.9.1. Maven
5.5.9.2. SpringBootApplication
5.5.9.3. ClientRestController
5.5.9.4. Test
5.5.10. 自签名证书信任问题
5.5.11. Principal
5.5.12. SecurityContextHolder 对象
5.5.13. 资源服务器配置
5.5.13.1. access()
5.5.13.1.1.
5.5.13.1.2.
5.5.14. Client
5.5.14.1. Overriding Spring Boot 2.0 Auto-configuration
5.5.15. Oauth2 常见问题
5.5.15.1. 修改 /oauth/token 路径
5.5.15.2. password 认证方式静态配置用户列表

5.1. Spring Security with HTTP Auth

5.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":{}} 			
			
			

5.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
			
			

5.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