Spring Boot 2.5.0(Spring Security 5.5.0-M2)でremoteUserの値が変わった
HttpServletRequest#getRemoteUser()
をログ出力(Tomcatの %u
)しているのですが、Spring Boot 2.5.0 から返ってくる値が変わったようです。
どの変更が影響しているのか調べたところ、次のものが該当するようです。
実際にどうなったか見てみます。
で作成した サンプル実装であるところの
を利用します。
上記のサンプル実装を次のように変更します。
public class HelloController {
@GetMapping
public String index(final HttpServletRequest request) {
final Authentication authn = SecurityContextHolder.getContext().getAuthentication();
log.info("Authentication: {}", authn);
return request.getRemoteUser();
}
}
また、Spring Bootのバージョンを 2.4
系の最新版である 2.4.8
にアップグレードします(Spring Security のバージョンは 5.4.7
になります)。
その上で http://localhost:8080 にアクセスしてログインすると、次の出力を得ます。
Name: [myuser], Granted Authorities: [[ROLE_USER, SCOPE_email, SCOPE_profile]], User Attributes: [{sub=5512f41b-43b1-40cf-858c-ab27bc6a5e9f, email_verified=false, name=my-firstname my-lastname, preferred_username=myuser, given_name=my-firstname, family_name=my-lastname, email=myuser@example.com}]
続いて、ソースコードはそのまま、Spring Bootのバージョンを 2.5.0
に変更して同様にアクセスしてみると、次の出力を得ます。
なおSpring Securityのバージョンは 5.5.0
です。
myuser
以上、Spring Boot 2.5.0
以降(Spring Security 5.5.0-M2
以降)で HttpServletRequest#getRemoteUser()
の値が変わっていることを確認できました。