准备工作
SpringBoot与SpringSecurity的整合十分方便,只要导入依赖即可,导入后就会自动保护所有的Controller
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
账号密码的设置方式
不手动设置用户名密码
以下面的Controller为例
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/1")
public String test(){
return "hello SpringSecurity";
}
访问端口会自动跳转到login页面
不手动的设置得情况下默认用户名是user而密码查看控制台,每次启动都会随机生成
在配置文件中设置
在application.yml中也可以对账号密码进行手动设置
spring:
security:
user:
name: admin
password: admin
在代码中设置
在config中写一个配置类如下,这里的设置会覆盖掉配置文件中的设置
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
PasswordEncoder passwordEncoder(){
//不加密方式返回
return NoOpPasswordEncoder.getInstance();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("12345")
.roles("admin");//后面可以跟.and()来配置多个,这里的配置会覆盖掉配置文件中的
}
}