Java spring rest API所有查询的自定义验证

Java spring rest API所有查询的自定义验证,java,spring,rest,api,spring-security,Java,Spring,Rest,Api,Spring Security,我使用的是SpringRESTAPI,我想在进入RESTAPI查询之前应用自定义验证(更具体地说,我想检查用户是否经过身份验证,我还需要HttpServletRequest对象) 例如,我有3个API。 1.RestAPI/test1 2.RestAPI/test2 3.RestAPI/test3 因此,在执行查询之前,我想检查用户是否经过身份验证 我可以使用约束验证器 我怎样才能做到这一点 我不使用弹簧靴 谢谢 有以下几种方法: 1) Spring security@预授权(“isAuthen

我使用的是SpringRESTAPI,我想在进入RESTAPI查询之前应用自定义验证(更具体地说,我想检查用户是否经过身份验证,我还需要
HttpServletRequest
对象)

例如,我有3个API。 1.RestAPI/test1 2.RestAPI/test2 3.RestAPI/test3

因此,在执行查询之前,我想检查用户是否经过身份验证

我可以使用
约束验证器

我怎样才能做到这一点

我不使用弹簧靴


谢谢

有以下几种方法:

1) Spring security
@预授权(“isAuthenticated()”)
@安全(“角色管理”)

有关更多信息,请参阅

2) 您可以创建自定义批注,添加带有
SecurityContextHolder
签入的方面:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Authenticated {
}

import org.aspectj.lang.annotation.Aspect;
@Aspect
@Component
public class AuthenticatedAspect {

    @Around("@annotation(Authenticated)")
    public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
         if (!SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
             throw your exeption
         }
         return joinPoint.proceed();
    }
}
对于第二种方法,您可能需要添加
proxy target class=“true”