【发布时间】:2015-09-05 13:37:09
【问题描述】:
我正在使用 Spring Security 和 OAuth2 使用以下项目进行身份验证/授权。 http://projects.spring.io/spring-security-oauth/
我需要向 OAuth2 授权 url 添加参数。我不确定如何将其添加到 AuthorizationCodeResourceDetails bean?
问题是我想通过从客户端站点登录或注册来开始用户旅程。客户端将发送一个 OAuth 请求,在授权服务器上,我将显示注册表单或登录表单以供用户继续其旅程。
默认流程只有以下参数 /oauth/authorize?client_id=[]&redirect_uri=[]&response_type=token&scope=openid+profile&state=HZSMKb
我想附加“&startPoint=register”
public OAuth2ProtectedResourceDetails googleOAuth2Details() {
AuthorizationCodeResourceDetails googleOAuth2Details = new AuthorizationCodeResourceDetails();
googleOAuth2Details.setAuthenticationScheme(header);
googleOAuth2Details.setClientAuthenticationScheme(header);
googleOAuth2Details.setClientId(clientId);
googleOAuth2Details.setClientSecret(clientSecret);
googleOAuth2Details.setUserAuthorizationUri(authorizationUrl);
googleOAuth2Details.setAccessTokenUri(accessTokenUrl);
googleOAuth2Details.setScope(asList("openid","profile"));
return googleOAuth2Details;
}
@SuppressWarnings("SpringJavaAutowiringInspection") // Provided by Spring Boot
@Resource
private OAuth2ClientContext oAuth2ClientContext;
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES)
public OAuth2RestOperations authCodeRestTemplate() {
return new OAuth2RestTemplate(googleOAuth2Details(), oAuth2ClientContext);
}
【问题讨论】:
-
您尝试向哪个 OAuth 提供者进行身份验证?请发布一些相关代码,否则人们会简单地投票。
-
我也在使用 spring-security-oauth2 作为提供者。
-
不,你错过了我的意思,你想让你的用户登录谷歌,对吧???
-
对不起命名约定,基本上我使用谷歌客户端进行测试,但我希望用户通过我自己的 IDP 登录,它基于我上面提到的“spring-security-oauth”项目。
标签: spring spring-security oauth-2.0 spring-security-oauth2