我们有两种登录方式.
>用户名和密码由请求标头中的其他应用程序发送.检查IT,如果用户名和密码正确,则进入.[为此编写自定义过滤器]
>如果请求标头中不存在用户名和密码,则会显示登录屏幕.
当用户名和密码出现在请求标头中且错误时,我会看到HTTP状态401 – 身份验证失败:错误的凭据页面.
如果身份验证失败,如何让它显示登录页面.
下面是security.xml中的代码
如果您需要更多信息,请与我们联系.
编辑:在我的应用程序中添加RequestHeader过滤器的代码
public class RequestHeaderProcessingFilter extends AbstractAuthenticationProcessingFilter{
private String usernameHeader = "j_username";
private String passwordHeader = "j_password";
protected RequestHeaderProcessingFilter() {
super("/login_direct");
}
//getters and setters
@Override
public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException {
String username = request.getHeader(usernameHeader);
String password = request.getHeader(passwordHeader);
SignedUsernamePasswordAuthenticationToken authRequest =
new SignedUsernamePasswordAuthenticationToken(username, password);
return this.getAuthenticationManager().authenticate(authRequest);
}
}