wisdomisite-java/src/main/java/com/zhgd/xmgl/security/JwtAuthenticationEntryPoint.java

48 lines
1.7 KiB
Java
Raw Normal View History

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();
}
}