From f830b702fc5531848433de298b1b73fc6165ef73 Mon Sep 17 00:00:00 2001 From: renjiangtao <664870911@qq.com> Date: Sat, 1 Aug 2020 16:31:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=AE=BF=E9=97=AE40?= =?UTF-8?q?1=E8=BF=94=E5=9B=9E=E5=80=BC,=E8=A7=A3=E5=86=B3=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2401=E7=9A=84=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/config/ResourceServerConfig.java | 5 ++- .../handler/AuthExceptionEntryPoint.java | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/AuthExceptionEntryPoint.java diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ResourceServerConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ResourceServerConfig.java index 6aa3ba89..6c4f6b43 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ResourceServerConfig.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ResourceServerConfig.java @@ -1,5 +1,6 @@ package com.ruoyi.common.security.config; +import com.ruoyi.common.security.handler.AuthExceptionEntryPoint; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.OAuth2ClientProperties; import org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties; @@ -21,7 +22,7 @@ import org.springframework.web.client.RestTemplate; /** * oauth2 服务配置 * - * @author ruoyi + * @author tanran */ @Configuration @EnableResourceServer @@ -77,6 +78,6 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter @Override public void configure(ResourceServerSecurityConfigurer resources) { - resources.tokenServices(tokenServices()); + resources.tokenServices(tokenServices()).authenticationEntryPoint(new AuthExceptionEntryPoint()); } } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/AuthExceptionEntryPoint.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/AuthExceptionEntryPoint.java new file mode 100644 index 00000000..f634c37e --- /dev/null +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/AuthExceptionEntryPoint.java @@ -0,0 +1,38 @@ +package com.ruoyi.common.security.handler; + +import com.alibaba.fastjson.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.core.constant.HttpStatus; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.ServletUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 自定义访问401返回值 + * + * @author tanran + */ +public class AuthExceptionEntryPoint implements AuthenticationEntryPoint { + + private final Logger logger = LoggerFactory.getLogger(AuthExceptionEntryPoint.class); + + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, + AuthenticationException authException){ + + logger.info("token已失效,跳转登录页面 {}", request.getRequestURI()); + + String msg = authException.getMessage(); + ServletUtils.renderString(response, JSON.toJSONString(R.fail(HttpStatus.UNAUTHORIZED, msg))); + } +} \ No newline at end of file