我使用SpringBoot作为后端,reactjs作为前端,两者都作为不同的应用程序运行,在负载均衡器上进行上下文切换,以便两者都有相同的应用程序url。
上下文switching:-
默认情况下,所有路由到js的请求
以/api/v1/*开头的请求将被路由到spring引导后端。
为spring引导应用程序使用springwebflux安全性。
@Bean
public SecurityWebFilterChain securitygWebFilterChain(final ServerHttpSecurity http) {
http.securityContextRepository(securityContextRepository);
return http.authorizeExchange()
.matchers(PathRequest.toStaticResources().atCommonLocations())
.permitAll()
.pathMatchers(props.getSecurity().getIgnorePatterns())
.permitAll()
.anyExchange()
.authenticated()
.and()
.formLogin()
.and()
.exceptionHandling()
.authenticationEntryPoint((exchange, exception) -> Mono.error(exception))
.accessDeniedHandler((exchange, exception) -> Mono.error(exception))
.and()
.build();
}
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
@Bean
public ReactiveAuthenticationManager authenticationManager() {
UserDetailsRepositoryReactiveAuthenticationManager authenticationManager = new UserDetailsRepositoryReactiveAuthenticationManager(
userDetailsService);
authenticationManager.setPasswordEncoder(passwordEncoder());
return authenticationManager;
}
@Bean
public ServerSecurityContextRepository securityContextRepository() {
WebSessionServerSecurityContextRepository securityContextRepository = new WebSessionServerSecurityContextRepository();
securityContextRepository.setSpringSecurityContextAttrName("app-security-context");
return securityContextRepository;
}
在这里使用基于表单的身份验证。默认情况下,所有api都受到限制。
需要测试登录和api的正确身份验证。我的react应用程序还没有准备好,所以正在尝试使用postman进行测试。
如何用postman测试表单登录?
另外,如何通过登录会话来测试其他经过身份验证的api?
暂无答案!
目前还没有任何答案,快来回答吧!