Java spring rest API所有查询的自定义验证
我使用的是SpringRESTAPI,我想在进入RESTAPI查询之前应用自定义验证(更具体地说,我想检查用户是否经过身份验证,我还需要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
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”