package cc.mrbird.febs.auth.handler; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.utils.FebsUtil; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.LockedException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.AuthenticationFailureHandler; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author MrBird */ @Component public class FebsWebLoginFailureHandler implements AuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException exception) throws IOException { String message; if (exception instanceof BadCredentialsException) { message = "用户名或密码错误!"; } else if (exception instanceof LockedException) { message = "用户已被锁定!"; } else { message = "认证失败,请联系网站管理员!"; } FebsResponse febsResponse = new FebsResponse().message(message); FebsUtil.makeFailureResponse(httpServletResponse, febsResponse); } }