实现登录AOP
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import lombok.Getter;
|
||||
@Getter
|
||||
public enum PercodeEnum implements CodeEnum{
|
||||
FILE_UPLOAD(3,"upload"),
|
||||
LOG_OUT(4,"login")
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user