我有一个 Firebase 帐户,基本上仅用于身份验证。它在 Spring Boot 内运行,仅使用 OAuth2Resource 验证它们。 在生产环境中,用户必须验证其电子邮件地址并启用 TOTP 验证。 但为了测试,我想只需按一下按钮即可创建虚假的随机配置文件。 我不确定如何具体实现这一点,但我正在考虑要么禁用令牌上的签名验证(允许我自己简单地添加任何声明),要么找到某种方法来创建一个嵌入式 JWT 权限来替换 firebase(但随后您将无法在测试中测试登录流程)。但没有关于如何在任何地方执行其中任何一项(或其他任何操作)的信息。那么如何在我的测试环境中创建假 JWT 或登录?
我假设你正在使用
oauth2ResourceServer
依赖。
只需使用自定义的authenticationMANager为该测试配置文件定义一个SecurityFilterChain bean:
@Profile("test")
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.oauth2ResourceServer(c -> c
.jwt(jwt -> jwt
.authenticationManager(authentication -> new UsernamePasswordAuthenticationToken("some principal", "", List.of())))
)
.build();
}