您好我有一个Spring boot + Spring Security项目。 我正在构建一个我定义的自定义注释:
@Retention(RUNTIME)
@Target(METHOD)
public @interface CustomAnnotation {
String condition();
String[] fields() default {};
}
此注释将应用于课程'方法。我想要"条件"参数是一个弹簧安全表达式'我将在评估表达式的方面进行评估,如果是真的,它将做一些逻辑。
方面定义如下:
@Pointcut("@annotation(customAnnotation)" )
public void pointcutForCustomAnnotation(CustomAnnotation customAnnotation) {
// Do nothing.
}
@Around("pointcutForCustomAnnotation(customAnnotation)")
public Object customAspect(ProceedingJoinPoint pjp, CustomAnnotation customAnnotation) throws Throwable {
// Here should go the logic to evaluate spring security expression
String condition = customAnnotation.condition();
String[] fieldsToHide = customAnnotation.fields();
}
当我指的是Spring安全表达式时,我指的是@Preauthorize,@ PostAuthorize,@ PreFilter @PostFilter spring注释中使用的表达式。 例如:
hasRole('ROLE_USER')
isAuthenticated()
如何评估方面的弹簧安全表达式?我想我可以很容易地采用完成这项工作的类i spring框架
答案 0 :(得分:0)