Spring Security: OIDC の redirect_uri を変更する
はじめに
KeycloakをIdPにしてSpring Security OAuth 2.0 Login/Client を試してみる で作成したコードに対して、 カスタム redirect_uri
の設定を行ってみます。
今回のコードはこちら:
変更手順
KeyCloak 登録情報の変更
前回のページ を参考に、 "Valid Redirect URIs" の値を今回変更するURL http://localhost:8080/my_redirect_uri に更新します。
Spring Boot 側の修正
registration 情報更新
application.yml
に registration 情報を登録していますが、今回変更するURLに更新します。
application.yml
registration:
myspring:
redirect-uri: "{baseUrl}/my_redirect_uri"
security config
前回のコードでは security config はデフォルト(OAuth2WebSecurityConfigurerAdapter
)のままで良かったので何も書きませんでした。
今回は設定を追加する必要があるので、 OAuth2WebSecurityConfigurerAdapter
実装をコピーした上で、必要な設定を追加します。
MyOAuth2WebSecurityConfiguration.java
@EnableWebSecurity
public class MyOAuth2WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(final HttpSecurity http) throws Exception {
http.authorizeRequests((requests) -> requests.anyRequest().authenticated());
http.oauth2Login()
.loginProcessingUrl("/my_redirect_uri"); // 今回追加した部分
http.oauth2Client();
}
}
以上です。結果だけ見ると簡単なんですが、どうやってみんなこの結論にたどり着いているのか疑問です… (自分はデバッガで追ったりSpring Securityのコードをcloneしてきてgrepしたりした。リファレンスにも書いてないよね…)