一、Spring Reactive Security简单使用

发布时间 2023-06-05 20:22:16作者: shigp1

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登录可访问到。这里的配置都是在内存中的。