我有一個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以包含它的最佳方式?謝謝你的幫助。