我正在编写一个Springboot应用程序,需要对另一个组提供的OAuth2客户端的用户进行身份验证。 OAuth2客户端提供两种身份验证方案:form
和sso
。我正在构建的应用程序需要使用sso
方案,因为应用程序无法将用户重定向到登录表单。
Spring安全性包含一个枚举,提供可以使用的security.oauth2.client.client-authentication-scheme
选项,sso
不是提供的,因此我需要能够以某种方式扩展它或提供自定义选项。
最终,应用程序需要生成采用此格式的GET
请求:https://iapi.mycompany.com/authentication-service/v2/authorize?response_type=code&client_id=myClientIdHere&redirect_uri=https:/myclient.mycompany.com/redirect&state=someStateString&login_method=sso
据我所知,它只是login_method=sso
部分,它是需要生成的自定义部分。关于我如何说服Spring Security为我做这件事的任何想法?
答案 0 :(得分:0)
原来,解决方案是在security.oauth2.client.client-authentication-scheme
中注释掉application.properties
媒体资源,并将?login-method=sso
附加到security.oauth2.client.user-authorization-uri
媒体资源。
最终属性如下所示:
security.oauth2.client.user-authorization-uri=https://iapi.mycompany.com/authentication-service/v2/authorize?login_method=sso