あなたはHTTPにBasic authentication
を使用すると仮定し、あなたは、あなたがHttpServletRequest
オブジェクトを取得することができ、EntryPoint
を設定する必要があります。
public class CustomBasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint {
@Override
public void commence(final HttpServletRequest request, final HttpServletResponse response,
final AuthenticationException authException) throws IOException, ServletException {
request.getDispatcherServlet().forward()...
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\"");
PrintWriter writer = response.getWriter();
writer.println("HTTP Status 401 : " + authException.getMessage());
}
@Override
public void afterPropertiesSet() throws Exception {
setRealmName(WebSecurityConfig.REALM);
super.afterPropertiesSet();
}
}
そして、春のセキュリティ設定に以下を追加します。
.and().exceptionHandling().authenticationEntryPoint(new CustomBasicAuthenticationEntryPoint());