Spring Security 学习
1. 初识Spring Security
Spring Security 是Spring提供的一套安全机制框架,对用户访问资源做登录认证。
2. 搭建简单Spring Security
创建一个基于SpringBoot框架的Web项目。
2.1 引入Maven SpringSecurity相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
2.2 自定义Security Config配置类
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置所有请求必须登录之后才可以访问
/*
此处采用httpBasic认证模式
*/
http.httpBasic()
.and()
.authorizeRequests()
.anyRequest().authenticated();
}
}
2.3 创建用户查询接口Controller
/**
* 用户相关
*/
@RestController
@RequestMapping("/user")
public class UserController {
/**
* 查询当前用户信息
*/
@GetMapping("/getUserList")
public Map<String, Object> getUserList() {
return new HashMap<String, Object>(){{
put("username", "张三");
put("sex", "男");
put("age", "20");
}};
}
/**
* 用户登录
*/
@GetMapping("/login")
public Map<String, Object> login() {
return new HashMap<String, Object>(){{
put("code", 200);
put("msg", "登录成功");
}};
}
}
2.4 启动服务浏览器访问下面地址
http://localhost:8080/user/getUserList
这个时候会发现弹出一个身份认证的弹出框,当不配置用户名和密码时,Spring Security 会默认提供
用户名为: user
密码为Console打印的一串字符串
- 当登录成功后即可访问查询用户信息的接口
2.5 配置自定义用户名及密码
在application.yml中配置用户名及密码
server:
port: 8080
spring:
security:
user:
name: zhangsan
password: zhangsan123