如何修改Spring Authorization Server 1.4.0的end_session_endpoint?
要修改OIDC发现文档里的end_session_endpoint,不能只依赖普通的SecurityFilterChain登出配置——那是配置应用自身的登出逻辑,而授权服务器的OIDC端点路径需要通过自定义配置器调整:
- 创建
OpenIdProviderConfigurationCustomizerBean,直接修改发现文档中的端点路径:
@Bean public OpenIdProviderConfigurationCustomizer providerConfigurationCustomizer() { return config -> config.setEndSessionEndpointUri("/logout"); }
- 同时确保授权服务器的
SecurityFilterChain正确处理/logout路径的登出请求,配置如下:
@Bean @Order(1) public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception { OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); // 配置登出端点 http.logout(logout -> logout .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .logoutSuccessHandler(new OAuth2LogoutSuccessHandler()) .addLogoutHandler(new SecurityContextLogoutHandler()) ); return http.build(); }
注意:
- 使用
OAuth2LogoutSuccessHandler(Spring Authorization Server提供的OIDC专用登出成功处理器)比普通的logoutSuccessUrl更适配OIDC流程。 - 上述登出配置要放在授权服务器专属的
SecurityFilterChain(通常标注@Order(1))中,而非应用的其他SecurityFilterChain。
内容的提问来源于stack exchange,提问作者Peter Penzov
相关产品推荐
相关产品推荐

