我正在使用具有 Spring 安全性的 Spring Boot,自定义“过滤器”类调用具有 OAuth 2 身份验证的 CIAM 服务器。我想显式设置或覆盖默认设置,以便我可以在 Spring Security 在后台准备的重定向 URL 中设置自定义动态 STATE 参数,并将用户发送到 CIAM 服务器登录页面。这对我来说是微不足道的,但事实证明远非如此。
目标是添加 OAuth2 重定向链接的自定义 STATE 参数,以便在身份验证完成且 CIAM 服务器将我重定向回我的页面后,我从 CIAM 服务器收回成功重定向链接中自动包含的 STATE 参数.
安全配置
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true,
proxyTargetClass = true)
@EnableOAuth2Client
@Order(3)
public class OAuth2LoginWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
CiamOAuth2ClientFilter oAuth2CiamClientFilter;
@Bean
public InMemoryUserDetailsManager inMemoryUserDetailsManager() {
return new InMemoryUserDetailsManager();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/**/*.css", "/**/*.png", "/**/*.gif", "/**/*.jpg", "/h2-console/**", "/css/**",
"/img/**", "/font-awesome/**", "/fonts/**", "/js/**", …Run Code Online (Sandbox Code Playgroud)