From 3c2306b0051e5a90b5bacbfcbb70a9526186321c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=E5=98=89=E9=98=B3?= Date: Sat, 23 Jun 2018 20:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=99=BB=E5=BD=95AOP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aspect/LoginAuthorizeAspect.java | 58 +++++++++++++++++++ .../fjy8018/fileupload/enums/PercodeEnum.java | 1 + .../fileupload/enums/ResultVOEnum.java | 1 + 3 files changed, 60 insertions(+) create mode 100644 src/main/java/top/fjy8018/fileupload/aspect/LoginAuthorizeAspect.java diff --git a/src/main/java/top/fjy8018/fileupload/aspect/LoginAuthorizeAspect.java b/src/main/java/top/fjy8018/fileupload/aspect/LoginAuthorizeAspect.java new file mode 100644 index 0000000..6e24440 --- /dev/null +++ b/src/main/java/top/fjy8018/fileupload/aspect/LoginAuthorizeAspect.java @@ -0,0 +1,58 @@ +package top.fjy8018.fileupload.aspect; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import top.fjy8018.fileupload.constant.GlobalConstant; +import top.fjy8018.fileupload.dataobject.User; +import top.fjy8018.fileupload.dataobject.view.UserPermission; +import top.fjy8018.fileupload.enums.PercodeEnum; +import top.fjy8018.fileupload.enums.ResultVOEnum; +import top.fjy8018.fileupload.exception.FileUploadException; +import top.fjy8018.fileupload.form.LoginForm; +import top.fjy8018.fileupload.service.UserService; + +import javax.servlet.http.HttpServletRequest; + +/** + * @author F嘉阳 + * @date 2018-06-23 20:03 + */ +@Slf4j +@Aspect +@Component +public class LoginAuthorizeAspect { + + @Autowired + private UserService userService; + + @Pointcut("execution(public * top.fjy8018.fileupload.controller.LoginController.doLogin(..))") + public void verify(){ + + } + + @Before("verify()") + public String doVerify(){ + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + String userName = request.getParameter("userName"); + + UserPermission userPermission = userService.findPermissionByUserName(userName); + if (userPermission==null){ + throw new FileUploadException(ResultVOEnum.USER_NOT_EXIST); + } + + String[] percodes = userPermission.getPercode().split(":"); + + if (!percodes[1].equals(PercodeEnum.LOG_OUT.getMsg())){ + log.warn("【禁止登录】用户:{}",userName); + return "index.html"; + } + return null; + } +} diff --git a/src/main/java/top/fjy8018/fileupload/enums/PercodeEnum.java b/src/main/java/top/fjy8018/fileupload/enums/PercodeEnum.java index bc8b59c..19e2251 100644 --- a/src/main/java/top/fjy8018/fileupload/enums/PercodeEnum.java +++ b/src/main/java/top/fjy8018/fileupload/enums/PercodeEnum.java @@ -5,6 +5,7 @@ import lombok.Getter; @Getter public enum PercodeEnum implements CodeEnum{ FILE_UPLOAD(3,"upload"), + LOG_OUT(4,"login") ; private Integer code; diff --git a/src/main/java/top/fjy8018/fileupload/enums/ResultVOEnum.java b/src/main/java/top/fjy8018/fileupload/enums/ResultVOEnum.java index 2837d09..b1bdfbe 100644 --- a/src/main/java/top/fjy8018/fileupload/enums/ResultVOEnum.java +++ b/src/main/java/top/fjy8018/fileupload/enums/ResultVOEnum.java @@ -10,6 +10,7 @@ public enum ResultVOEnum implements CodeEnum { UPLOAD_FAIL(-1,"上传失败"), FORBIDDEN_ACCES(1,"没有访问权限"), LOG_OUT(2,"未登录"), + USER_NOT_EXIST(3,"用户不存在"), ; private Integer code;