当前位置: 首页 > 知识库问答 >
问题:

在自定义注释中使用Spring Security表达式

郑茂材
2023-03-14
@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();
}
hasRole('ROLE_USER')
isAuthenticated()

如何计算方面中的Spring Security表达式?我想我可以很容易地使用完成这项工作的类I spring框架

共有1个答案

闻人凯泽
2023-03-14

以下要点可以作为一个起点:

以编程方式检查Spring Security表达式

对于Grails中的相同问题,它对我来说很有效。(我必须更改expressionHandler查找)

 类似资料:
  • 我发现了几个与此相关的(不是重复的)问题,但它们不能让我满意。 我无法理解在哪里以及为什么要使用? 我在一本书中读到了一个自定义注释的示例,但没有详细解释。 myMeth()内的输出与预期一致。 关于这个例子,我有几个问题。 1-如何在此程序中使用和?或

  • 我正在尝试使用Spring安全注释,如@PreAuthorize和@安全,但我希望评估用户不是在一个角色上,而是他们是否拥有对特定实体的权限,在这种情况下是一家公司。在我的控制器中,我收到一个超文本传输协议请求,其中包含一个firmId作为参数,我想确保这个用户被允许进入这家公司。是否可以使用当前的Spring安全注释?。我正在寻找一个优雅的解决方案,我一直在寻找自定义约束验证器作为jsr303规

  • 我们正在尝试在Spring中为我们的rest api创建一个自定义注释。我是创建自定义注释的新手,我已经给出了下面的代码片段 Spring Boot应用程序-- RestController- 自定义注释-- 注解处理器 方法回调-- 我试图处理自定义注释在一个类中实现BeanPost处理器,但我有一个问题 Issue_1:回调被调用一次,但是我不能对 /service/v1/version应用编

  • 我正在研究一个日志方面,它需要截获所有用自定义注释注释的类和方法。 下面是可以在类和方法上注释的自定义注释类: 我使用这些切入点表达式拦截带有注释的方法和类,这适用于所有简单类,但不适用于扩展或实现的类。 但是对而不是调用通知。 当对任何类或方法应用注释时,如何编写同时拦截对任何子类方法调用的切入点表达式?

  • 静态编程语言允许注释表达式。然而,尚不清楚这些注释如何有用以及如何使用它们。 假设在下面的示例中,我想检查一下,该字符串包含@MyExpr注释中指定的数字。这能实现吗?如何实现?

  • 问题内容: 有没有办法在@Preauthorize块中创建更具表现力的语句?这是我重复的例子,因为@Preauthorize并非开箱即用。 我想要的是类似的东西。 问题的一部分是,我需要查询数据库以获取其中一些内容以验证权限,例如查询数据库以获取游戏副本,然后将游戏所有者与制作人进行比较请求。我不太确定所有这些如何在@Preauthorize注释处理器的上下文中运行,还是不确定如何将东西添加到@P