我想知道如何在SSO期间获得Spring身份验证。
关于问题的简要说明:
用户登录我的应用 - > Spring自定义过滤器(使用SSO登录的自定义身份验证提供程序)启动
现在我们有一个经过身份验证的用户(例如 bob / bob ),我们正在尝试将请求转发给有自己的SSO的第三方应用程序 - 这里的问题是它有自己的内存身份验证(例如admin / admin)
现在第三方应用提示输入身份验证( admin / admin ),用户bob / bob现在丢失了。现在当bob尝试登录我的应用程序时,他不会被识别为会话现在有admin / admin。
如何解决此问题,因为第三方应用程序正在覆盖会话信息?
SecurityConfig.class
这将是ThirdParty App的安全配置,它在创建弹簧上下文时创建
@Configuration
@Bean
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManagerBuilder b = new InMemoryUserDetailsManagerBuilder()
.withUser("admin").password("admin").authorities(new String[]{"ROLE_ADMIN"});
return new CompositeUserDetailsService(Arrays.asList(new UserDetailsManager[]{b.build(), this.technicalUserDetailsService()}));
}
MyCustomConfig.class
这将是我的自定义安全配置(SSO),这也是在春季环境中创建的。
@configuration
@Bean
public UserDetailsService userDetailService() {
return new customUserDetailsService(); // Custom SSO
}
SSO不起作用,因为我的自定义配置具有与第三方应用程序不同的权限(用户/角色)。
感谢任何帮助...