対象
- SpringBoot3.2でEntra ID(旧AzureAD)でログインを実装している
- なんか公式の通りに書くとDeprecatedって言われて気持ち悪い
結論の先出し
Webアプリへのログインの実装について、例によって公式のドキュメントが古い書式でコードを提示しています。
HttpSecurity.aplly(C configurer)
やHttpSecurity.and()
は非推奨となっていますので、代替のwith(C configurer, Customizer<C> customizer)
と.authorizeHttpRequests()
を使用する必要があります。
公式のサンプルコードをSpringBoot3.2の書式で書き直し
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableMethodSecurity
public class AadOAuth2LoginSecurityConfig {
/**
* Add configuration logic as needed.
*/
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.with(AadWebApplicationHttpSecurityConfigurer.aadWebApplication(),
Customizer.withDefaults())
.authorizeHttpRequests(requests -> requests
.anyRequest().authenticated());
// Do some custom configuration.
return http.build();
}
}
with()
の第1引数にAadWebApplicationHttpSecurityConfigurer.aadWebApplication()
で生成したConfigurerを渡して、第2引数で何も変更しないCustomizerを渡します。
その他はラムダ式で書くこと以外は変更なしです。
私の環境ではこの書き方で問題なく動作しているように思いますので、今のうちに新しい書式へ変更しましょう。
何か問題が発生したときは教えていただけると私も助かると思います。おためしください。
参考文書
Microsoftのドキュメント-Spring Security の Spring Cloud Azure サポート
Microsoftのドキュメント-Microsoft Entra アカウントを使用したサインインを Spring Web アプリに追加します
以前に書いたSpring Security + Azure AD(Entra ID)のログインについてもう少し詳しい記事-Spring Boot(MVC) + Spring Security + Azure ADでのログインの実装がとても簡単になった件