当前位置: 首页 > 知识库问答 >
问题:

Spring Security OAuth2-向授权URL添加参数

微生烨然
2023-03-14

我使用Spring Security with OAuth2进行身份验证/授权,使用以下项目。http://projects.spring.io/spring-security-oauth/

我需要向OAuth2授权URL添加参数。我不确定应该如何将它添加到AuthorizationCodeResourceDetails bean中?

默认流只有以下参数/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);
}

共有1个答案

法子昂
2023-03-14

由于“AuthorizationCodeResourceDetails”基于auth2“Authorization_Code”流不接受额外的参数。因此,为了解决这个问题,我在授权url本身中提供了参数。

为。如果授权url为http://localhost:8080/idp/oauth/authorize

我已经将额外参数附加到该url中,如以下http://localhost:8080/idp/oauth/authorize?startpoint=register

因为这个请求将被Spring保存到SavedRequest变量下的会话中,我可以在稍后获得该变量,以了解发起的请求是用于注册还是登录。

 类似资料:
  • 问题内容: 在使用AJAX调用的Web应用程序中,我需要提交一个请求,但要在URL的末尾添加一个参数, 寻找一种JavaScript函数,该函数解析URL并查看每个参数,然后添加新参数或更新值(如果已经存在)。 问题答案: 您需要调整的基本实现如下所示: 这大约是正则表达式或基于搜索的解决方案的两倍,但是这完全取决于查询字符串的长度和任何匹配项的索引 我为完成测试而基准的慢速正则表达式方法(慢了大

  • 我正在尝试为uber生成授权url https://login.uber.com/oauth/authorize?client_id=xxxx&response_type=code&scope=history&redirect_uri=HTTP%3a%2f%2flocalhost%2fcallback 好的 https://login.uber.com/oauth/authorize?client

  • 本文向大家介绍javascritp添加url参数将参数加入到url中,包括了javascritp添加url参数将参数加入到url中的使用技巧和注意事项,需要的朋友参考一下 将对象参数加入到url中,如果原来url中有则覆盖 js代码

  • 问题内容: 是否可以在向其添加一些参数数据的同时将请求转发给另一个控制器?我尝试添加到ModelMap中,但是它似乎不存在问题。我正在做类似的事情: 我能想到的唯一其他方法是将参数放在会话上,然后将其弹出目标控制器。 问题答案: 最简单的方法是将数据添加到请求中。 由于这是转发,因此将相同的请求传递到服务器内的不同处理程序。 作为示例,让我们从两个控制器的简单设置开始,一个转发到另一个: 添加数据

  • 问题内容: 我有一个使用邮递员传递URL参数的工作方案。现在,当我尝试通过Swift中的Alamofire进行操作时,它不起作用。 您如何在Alamofire中创建此网址? http:// localhost:8080 /?test = 123 问题答案: 问题是您正在使用。Alamofire会根据您所使用的HTTP进行不同的解释。 对于,和请求,将参数编码为查询字符串并将其添加到URL,但是对于

  • 我目前已经部署了一个swagger项目,但是我在添加一些基本的授权时遇到了麻烦。当你点击“试试看!”按钮,您需要登录帐户才能访问结果。我有一个帐户,我想在每次有人试图访问api时自动使用它。贝娄是我这个项目的index.html: 我正在尝试确定信息应该去往何处,以允许基本授权。我知道它涉及到下面几行代码,但是有人能向我解释得更详细一点吗?我意识到GitHub上的swagger文档不是很清晰或者很