Spring Security: OIDC の redirect_uri を変更する
   1 min read

はじめに

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したりした。リファレンスにも書いてないよね…)