注意点
ProceedingJoinPoint point
代码
@Component
@Slf4j
@Aspect
public class ManageLoginAop {
private static final String MANAGE_LOGIN_JSP = "/finance/manage/login";
// private static final String LOGIN_URL = CTXCOMPANY_PATH;
@Pointcut(value = "@within(com.ld.aop.annotation.ManageLogin)||@annotation(com.ld.aop.annotation.ManageLogin)")
public void cutManageLoginService() {
}
@Around("cutManageLoginService()")
public Object ManageLoginService(ProceedingJoinPoint point) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
MethodSignature signature = (MethodSignature) point.getSignature();
Method method = signature.getMethod();
ManageLogin manageLogin = method.getAnnotation(ManageLogin.class);
if (manageLogin == null) { // 那么获取类上的注解
// 获取类上的注解
manageLogin = point.getTarget().getClass().getAnnotation(ManageLogin.class);
if (manageLogin == null) {
// 获取接口上的注解
for (Class<?> cls : point.getClass().getInterfaces()) {
manageLogin = cls.getAnnotation(ManageLogin.class);
if (manageLogin != null) {
break;
}
}
}
}
}

本文介绍了一种使用Spring AOP实现管理登录权限检查的方法。通过定义切入点和环绕通知,对带有@ManageLogin注解的方法进行拦截,检查请求是否来自管理登录页面,确保只有从正确入口进入的请求才能调用特定服务。
1090

被折叠的 条评论
为什么被折叠?



