package com.common.security.configure; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.common.core.beans.Result; import com.common.core.enums.ResultCodeEnum; import com.common.core.exception.BizException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author 廖振钦 * @date 2022-01-17 * token失效访问接口时,自定义的返回结果 */ @Component public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); response.addHeader("Content-Security-Policy","default-src 'self'"); response.addHeader("Strict-Transport-Security","max-age=31536000; includeSubdomains"); response.addHeader("Referrer-Policy","no-referrer-when-downgrade"); response.addHeader("X-Permitted-Cross-Domain-Policies","all"); response.addHeader("X-Download-Options","noopen"); Result res=Result.respErr(ResultCodeEnum.RT_INVALID_TOKEN); response.getWriter().println(JSONObject.toJSONString(res)); response.getWriter().flush(); } }