2023-02-16 15:28:15 +08:00
|
|
|
|
package com.zhgd.xmgl.security;
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.springframework.security.core.AuthenticationException;
|
|
|
|
|
|
import org.springframework.security.web.AuthenticationEntryPoint;
|
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @program: wisdomSite
|
|
|
|
|
|
* @description: 认证失败处理类,返回401
|
|
|
|
|
|
* @author: Mr.Peng
|
|
|
|
|
|
* @create: 2021-03-05 16:21
|
|
|
|
|
|
**/
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
@Component
|
|
|
|
|
|
public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint, Serializable {
|
|
|
|
|
|
private static final long serialVersionUID = -8970718410437077606L;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void commence(HttpServletRequest request,
|
|
|
|
|
|
HttpServletResponse response,
|
|
|
|
|
|
AuthenticationException authException) throws IOException {
|
|
|
|
|
|
//验证为未登陆状态会进入此方法,认证错误
|
|
|
|
|
|
log.info("认证失败:" + authException.getMessage() + "--请求路径:" + request.getRequestURL());
|
|
|
|
|
|
response.setStatus(401);
|
|
|
|
|
|
response.setCharacterEncoding("UTF-8");
|
2023-10-30 18:38:48 +08:00
|
|
|
|
response.setContentType("application/json;charset=UTF-8");
|
2023-02-16 15:28:15 +08:00
|
|
|
|
PrintWriter printWriter = response.getWriter();
|
|
|
|
|
|
JSONObject resParam = new JSONObject();
|
|
|
|
|
|
resParam.put("message", authException.getMessage());
|
|
|
|
|
|
resParam.put("success", false);
|
|
|
|
|
|
resParam.put("code", "401");
|
|
|
|
|
|
//printWriter.write(resParam.toJSONString());
|
|
|
|
|
|
printWriter.println(resParam.toJSONString());
|
|
|
|
|
|
printWriter.flush();
|
|
|
|
|
|
printWriter.close();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|