Spring OAuth2.0:如何将自定义查询参数添加到授权代码(/ oauth / authorize)响应中?

时间:2018-02-02 23:39:22

标签: spring-security spring-oauth2

我看到授权代码插入到AuthorizationEndpoint.java里面的redirectUri

private String getSuccessfulRedirect(AuthorizationRequest authorizationRequest, String authorizationCode) {

    if (authorizationCode == null) {
        throw new IllegalStateException("No authorization code found in the current request scope.");
    }

    Map<String, String> query = new LinkedHashMap<String, String>();
    query.put("code", authorizationCode);

    String state = authorizationRequest.getState();
    if (state != null) {
        query.put("state", state);
    }

    return append(authorizationRequest.getRedirectUri(), query, false);
}

我希望能够只在query.put()的位置添加一段代码,但我无法成功扩展该类。我无法弄清楚在哪里/如何配置它作为我想先命中的auth端点。我还发现有点极端,我需要扩展整个类,以便我可以添加几行代码,以便将另一个查询参数附加到授权代码响应uri。

由于

1 个答案:

答案 0 :(得分:0)

我不确定为什么我的问题收到了一个downvote,但无论如何......

因为@dur的评论基本上说我做不到。谢谢顺便说一句(我没有看到任何方式来评价你的评论,我是SO的新手。)

解决方案:我决定创建一个自定义身份验证过滤器,在登录页面出现之前进行过滤。我做了一些验证并将其传递给身份验证。从那里,我为我的过滤器添加了一个自定义成功处理程序,并重定向到/oauth/authorize,以便跳转到我预期的授权代码流。