我有一个Spring Boot应用程序,它使用Spring Security和OAuth 2.0。目前,它正在基于Spring示例代码的身份验证服务器上运行。但是,运行我们自己的Auth服务器一直是促进开发的短期目标,而不是长期目标。我们一直在使用authorization_code授权类型,并且希望继续使用它,而不考虑Auth服务器的实现。Spring-Security-OAuth2 - 如何添加字段以访问令牌请求?
我正在尝试对使用Azure Active Directory中的OAuth 2.0端点进行更改,以充当我们的身份验证服务器。到目前为止,我已成功调用/ authorize端点。但是,获取/令牌的调用失败,并显示无效的请求错误。我可以看到要求出去了。
看来,Azure声明为必需的参数未在POST请求中填充。查看Azure doco,它期望在发布到端点的消息正文中定义client_id,并且默认情况下不会通过Spring添加。
任何人都可以指出我正确的方向,以便如何将字段添加到构建访问令牌请求时使用的表单映射中?我能看到的AccessTokenRequest对象是在OAuth2ClientConfiguration设置....
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
protected AccessTokenRequest accessTokenRequest(@Value("#{request.parameterMap}")
Map<String, String[]> parameters, @Value("#{request.getAttribute('currentUri')}")
String currentUri) {
DefaultAccessTokenRequest request = new DefaultAccessTokenRequest(parameters);
request.setCurrentUri(currentUri);
return request;
}
我应该试图确定在request.parameterMap弹簧特性的地图吗?如果是这样,我不太确定这是如何工作的。
或者我应该使用AuthorizationServerConfigurerAdapter类中定义的接口之一吗?
我有发送AccessTokenRequest时要包含的信息,我只是不知道配置Spring以包含它的最佳方式?谢谢你的帮助。