一、Spring Reactive Security简单使用
Spring Reactive Security是结合Spring Web Flux使用的。结合SpringBoot使用,简化了大量配置。
新建SpringBoot项目,添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
启动项目后,从控制台看到生成密码,复制密码,访问controller:
@RestController
@RequestMapping("/flux")
public class MyController {
@RequestMapping("/hello")
public Mono<String> hello() {
return Mono.just("Flux");
}
}
用户名默认是user。SpringBoot提供了属性配置用户名和密码的方式,在application.properties
加入配置:
spring.security.user.name=user
spring.security.user.password=123
重启后访问http://localhost:8080/flux/hello,用户名为user,密码是123。登陆后发现能访问到。
还可以在配置类配置用户信息:
@Configuration
public class MyReactiveSecurityConfig {
@Bean
public ReactiveUserDetailsService reactiveUserDetailsService() {
UserDetails user = User.withUsername("user")
.password("12345")
.roles("USER")
.build();
return new MapReactiveUserDetailsService(user);
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
}
加了配置类后,配置文件里的配置会失效。重启后用user/12345登录可访问到。这里的配置都是在内存中的。