From 6d527bb14859087c1485d00c5d99b487017a6e08 Mon Sep 17 00:00:00 2001 From: "zhouman@axzo.cn" Date: Mon, 7 Mar 2022 13:47:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B3=A8=E6=84=8F=E8=A7=A3=E8=80=A6?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1,=E8=A6=81=E8=83=BD=E5=A4=9F=E8=AE=A9?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=9C=8D=E5=8A=A1=E9=9B=86=E6=88=90=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E7=8E=B0=E6=9C=89=E4=B8=9A=E5=8A=A1=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BB=BB=E4=BD=95=E5=BD=B1=E5=93=8D=202.=20=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=20GlobalUserContext=20=E4=B8=8B=E6=B2=89=E5=88=B0fram?= =?UTF-8?q?ework=20=E4=B8=AD=EF=BC=8C=E6=9C=9F=E6=9C=9B=E4=BB=A3=E6=9B=BF?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=AD=E7=9A=84=20UserContext=203.=20?= =?UTF-8?q?=E5=85=B6=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- axzo-framework-header/pom.xml | 14 +++++++++ .../framework/header/GlobalUserContext.java | 14 +++++++++ .../header/GlobalUserContextInterceptor.java | 29 +++++++++++++++++++ .../axzo/framework/header/GlobalUserInfo.java | 7 +++++ .../axzo/framework/header/HeaderConstant.java | 6 ++++ 5 files changed, 70 insertions(+) create mode 100644 axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContext.java create mode 100644 axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContextInterceptor.java create mode 100644 axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserInfo.java create mode 100644 axzo-framework-header/src/main/java/cn/axzo/framework/header/HeaderConstant.java diff --git a/axzo-framework-header/pom.xml b/axzo-framework-header/pom.xml index 4643e0f..a484fdc 100644 --- a/axzo-framework-header/pom.xml +++ b/axzo-framework-header/pom.xml @@ -10,6 +10,20 @@ 4.0.0 axzo-framework-header + + + org.springframework + spring-web + 4.3.19.RELEASE + compile + + + javax.servlet + javax.servlet-api + 3.0.1 + compile + + 8 diff --git a/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContext.java b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContext.java new file mode 100644 index 0000000..a744924 --- /dev/null +++ b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContext.java @@ -0,0 +1,14 @@ +package cn.axzo.framework.header; + +public class GlobalUserContext { + public static final ThreadLocal threadLocal = new ThreadLocal<>(); + + public static GlobalUserInfo get() { + return threadLocal.get(); + } + + public static void release() { + // TODO + threadLocal.remove(); + } +} diff --git a/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContextInterceptor.java b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContextInterceptor.java new file mode 100644 index 0000000..ca95c9d --- /dev/null +++ b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserContextInterceptor.java @@ -0,0 +1,29 @@ +package cn.axzo.framework.header; + +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +public class GlobalUserContextInterceptor { + + protected void doBefore() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if(requestAttributes == null) { + return; + } + HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); + if(request == null) { + return; + } + String authorization = request.getHeader(HeaderConstant.KEY_AUTHORIZATION); + // TODO + // UserInfo tmp = Base64Decoder.decode(authorization); + // + // GlobalUserContext.get().setUserId(tmp.getUserId); + } + + protected void doAfter() { + GlobalUserContext.release(); + } +} diff --git a/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserInfo.java b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserInfo.java new file mode 100644 index 0000000..78216b4 --- /dev/null +++ b/axzo-framework-header/src/main/java/cn/axzo/framework/header/GlobalUserInfo.java @@ -0,0 +1,7 @@ +package cn.axzo.framework.header; + +public class GlobalUserInfo { + // 此处放当前登录用户的基本信息 + // TODO + +} diff --git a/axzo-framework-header/src/main/java/cn/axzo/framework/header/HeaderConstant.java b/axzo-framework-header/src/main/java/cn/axzo/framework/header/HeaderConstant.java new file mode 100644 index 0000000..58845b6 --- /dev/null +++ b/axzo-framework-header/src/main/java/cn/axzo/framework/header/HeaderConstant.java @@ -0,0 +1,6 @@ +package cn.axzo.framework.header; + +public class HeaderConstant { + public static final String KEY_AUTHORIZATION = "Authorization"; + +}