实现登录AOP

This commit is contained in:
2018-06-23 20:14:24 +08:00
parent e9a89249df
commit 3c2306b005
3 changed files with 60 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -5,6 +5,7 @@ import lombok.Getter;
@Getter
public enum PercodeEnum implements CodeEnum{
FILE_UPLOAD(3,"upload"),
LOG_OUT(4,"login")
;
private Integer code;

View File

@@ -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;