From 7e5509cd0c49116019ce9a8b4b946d2289486a64 Mon Sep 17 00:00:00 2001 From: Mlxa0324 <mlx950324@163.com> Date: Fri, 21 Oct 2022 16:17:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E8=80=81=E5=B8=88=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthenticationInterceptor.java | 3 +- .../main/java/cn/jlw/Interceptor/GetFile.java | 4 +- .../java/cn/jlw/Interceptor/GetTStudent.java | 4 +- .../java/cn/jlw/Interceptor/GetTTeacher.java | 45 +++++++++++++++++++ .../cn/jlw/Interceptor/InterceptorConfig.java | 2 + .../java/cn/jlw/Interceptor/TTeacher.java | 12 +++++ .../com/ibeetl/jlw/web/IndexController.java | 3 +- 7 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java create mode 100644 web/src/main/java/cn/jlw/Interceptor/TTeacher.java diff --git a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java index a9762c08..05b21453 100644 --- a/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java +++ b/web/src/main/java/cn/jlw/Interceptor/AuthenticationInterceptor.java @@ -24,6 +24,7 @@ import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; +import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT; import static com.ibeetl.jlw.web.StudentController.studentMap; /** @@ -138,7 +139,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor { } actionLog.init(httpServletRequest,token,null == student?null:student.getStudentId(),null); - httpServletRequest.setAttribute("t_student",student); + httpServletRequest.setAttribute(T_STUDENT,student); return true; } return true; diff --git a/web/src/main/java/cn/jlw/Interceptor/GetFile.java b/web/src/main/java/cn/jlw/Interceptor/GetFile.java index 061e41e1..0a0d0e4e 100644 --- a/web/src/main/java/cn/jlw/Interceptor/GetFile.java +++ b/web/src/main/java/cn/jlw/Interceptor/GetFile.java @@ -36,6 +36,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicLong; +import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT; + //将从request中获取的file获取出来并存入临时文件夹中 @Configuration @@ -137,7 +139,7 @@ public class GetFile implements HandlerMethodArgumentResolver { HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); //学生 - Student student = null == request.getAttribute("t_student") ? null : (Student) request.getAttribute("t_student"); + Student student = null == request.getAttribute(T_STUDENT) ? null : (Student) request.getAttribute(T_STUDENT); //管理员(教师或管理员) CoreUser user = null == request.getSession().getAttribute(CorePlatformService.ACCESS_CURRENT_USER)? null : (CoreUser) request.getSession().getAttribute(CorePlatformService.ACCESS_CURRENT_USER); diff --git a/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java b/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java index 1abece93..96afb72f 100644 --- a/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java +++ b/web/src/main/java/cn/jlw/Interceptor/GetTStudent.java @@ -10,6 +10,8 @@ import org.springframework.web.method.support.ModelAndViewContainer; import javax.servlet.http.HttpServletRequest; +import static com.ibeetl.admin.core.service.CorePlatformService.T_STUDENT; + //将从token中获取的member获取出来 @Configuration @@ -33,7 +35,7 @@ public class GetTStudent implements HandlerMethodArgumentResolver { HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); - Student student = null == request.getAttribute("t_student") ? null : (Student) request.getAttribute("t_student"); + Student student = null == request.getAttribute(T_STUDENT) ? null : (Student) request.getAttribute(T_STUDENT); return student; diff --git a/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java b/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java new file mode 100644 index 00000000..6d513659 --- /dev/null +++ b/web/src/main/java/cn/jlw/Interceptor/GetTTeacher.java @@ -0,0 +1,45 @@ +package cn.jlw.Interceptor; + +import com.ibeetl.jlw.entity.Student; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.MethodParameter; +import org.springframework.web.bind.support.WebDataBinderFactory; +import org.springframework.web.context.request.NativeWebRequest; +import org.springframework.web.method.support.HandlerMethodArgumentResolver; +import org.springframework.web.method.support.ModelAndViewContainer; + +import javax.servlet.http.HttpServletRequest; + +import static com.ibeetl.admin.core.service.CorePlatformService.T_TEACHER; + +//将从token中获取的老师信息出来 + +@Configuration +public class GetTTeacher implements HandlerMethodArgumentResolver { + + public GetTTeacher() { + } + + @Override + public boolean supportsParameter(MethodParameter parameter) { + if (parameter.getParameterType().isAssignableFrom(Student.class) && parameter.hasParameterAnnotation(TTeacher.class)) { + return true; + } + return false; + } + + + @Override + public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { + TTeacher tTeacher = parameter.getParameterAnnotation(TTeacher.class); + + HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); + + Student student = null == request.getAttribute(T_TEACHER) ? null : (Student) request.getAttribute(T_TEACHER); + + return student; + + } + +} + diff --git a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java index 93412056..6869dec5 100644 --- a/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java +++ b/web/src/main/java/cn/jlw/Interceptor/InterceptorConfig.java @@ -34,6 +34,7 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean { @Resource private GetSCoreUser getSCoreUser; @Resource private GetFile getFile; @Resource private GetTStudent getTStudent; + @Resource private GetTTeacher getTTeacher; @Resource private GetReferer getReferer; @Resource private GetIp getIp; @@ -103,6 +104,7 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean { argumentResolvers.add(getSCoreUser); argumentResolvers.add(getFile); argumentResolvers.add(getTStudent); + argumentResolvers.add(getTTeacher); argumentResolvers.add(getReferer); argumentResolvers.add(getIp); } diff --git a/web/src/main/java/cn/jlw/Interceptor/TTeacher.java b/web/src/main/java/cn/jlw/Interceptor/TTeacher.java new file mode 100644 index 00000000..978e1bd4 --- /dev/null +++ b/web/src/main/java/cn/jlw/Interceptor/TTeacher.java @@ -0,0 +1,12 @@ +package cn.jlw.Interceptor; + +import java.lang.annotation.*; + +//将从token中获取的teacher获取出来 + +@Documented +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface TTeacher { + +} diff --git a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java index 8e3c2e2f..cf5de374 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/IndexController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/IndexController.java @@ -3,6 +3,7 @@ package com.ibeetl.jlw.web; import cn.jlw.Interceptor.RequestReferer; import cn.jlw.Interceptor.SCoreUser; import cn.jlw.Interceptor.TStudent; +import cn.jlw.Interceptor.TTeacher; import cn.jlw.token.TokenService; import cn.jlw.util.ToolUtils; import com.alibaba.fastjson.JSONObject; @@ -818,7 +819,7 @@ public class IndexController { //跳转到电脑端首页 @RequestMapping("/index.do") - public void index(HttpServletRequest request, HttpServletResponse response, @TStudent Student student) { + public void index(HttpServletRequest request, HttpServletResponse response, @TTeacher Teacher teacher, @TStudent Student student, @SCoreUser CoreUser coreUser) { //判断是老师还是学生 if(null != student){//学生 try {