aop攔截和不攔截
@Pointcut("execution(* com.jzlife.nurse.web..*.*(..)) && !execution(* com.jzlife.nurse.web.file..*.*(..))")
@Order(99)
@Aspect
@Component
public class LoginAspect {
// @PermClass(parmName="stageIdsNotNull",orgCode="orgCode111",prmClass="permClass2222")
@Autowired
RedisDataUtil redisDataUtil;
@Autowired
LogExecutor logExecutor;
@Pointcut("execution(* com.jzlife.nurse.web..*.*(..)) && !execution(* com.jzlife.nurse.web.file..*.*(..))")
public void controllerAspect() {
}
@Before("controllerAspect()")
public void doBefore(JoinPoint joinPoint) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
// HttpServletResponse response = ((ServletRequestAttributes)
// RequestContextHolder.getRequestAttributes()).getResponse();
String url = request.getRequestURI();
String url2 = url.substring(url.lastIndexOf("/") + 1,
url.lastIndexOf("?") == -1 ? url.length() : url.lastIndexOf("?"));
if (url2.startsWith("login") || url2.startsWith("loginout")||url2.startsWith("getFile")) {
return;
}
String token = request.getHeader("token");
if (null == token) {
token = request.getParameter("token");
}
if (null == token) {
throw new LoginException("登陸過時,或未登陸");
}
SysUser sysuser = (SysUser) redisDataUtil.getCurrUser(token);
if (null == sysuser) {
throw new LoginException("登陸過時,或未登陸");
}
logExecutor.insertoperatlog(request,sysuser.getId(),joinPoint);
}
}
11