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

Security EvaluationContextExtensionSupport不工作的Spring Data

西门奇希
2023-03-14

我想使用Spring Data JPA的安全扩展支持来检查用户的权限,并相应地获取一些值。我正试着按照这里的指示来做

    @RepositoryRestResource(collectionResourceRel = "ProductStatus", path = "ProductStatus")
    public interface IProductStatusRepository extends CrudRepository<ProductStatusEntity, String> {
        @Query("SELECT p FROM ProductStatusEntity " +
                "?#{hasAuthority('ITManager') ? ' ' : ' WHERE ProductStatusCode NOT IN (\'VAL1\',\'VAL2\',\'VAL3\')'}")
        List<ProductStatusEntity> findStatusesByAuthority();
    }
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ? 

对此有什么想法吗?

共有1个答案

郁隐水
2023-03-14

好吧,这一个在几次尝试和错误后奏效了

@Query("select p from ProductStatusEntity p where p.productStatusCode NOT IN ( ?#{hasAuthority('ITManager') ? ' ' : @settings.productStatusExceptions})")
List<ProductStatusEntity> findStatusesByAuthority();

问题似乎是SpEL只有在指定了WHERE子句的情况下才被识别。也许这可以改进..不确定..

 类似资料:
  • 我想在菜单栏文本被选中时更改它的颜色。 这里可能出了什么问题? 我尝试使用伪类':active',但没有得到应用。其中as':Hover'正在工作。 我还尝试使用'Router LinkActive',它应该添加类'Active-Link',但这也不起作用。 我在下面给出了HTML、SCCS和TS代码:

  • 我在多模块maven项目中遇到以下问题: 该项目最初是在Eclipse中创建的,可以在那里编译和运行。它也可以用构建。 现在,当我使用以下导入选项将项目导入Intellij时,将识别父pom.xml,并导入项目及其模块。 一切看起来都很好,但是当我试图编译它时,一个类,它有一个来自另一个模块的类作为依赖项,找不到。 我尝试了很多解决方案,唯一对我有效的是过时的maven idea插件。现在,每当任

  • 我有Intellij-IDEA 13.1.2。[已编辑,以前是13.0.2]我使用scala-plugin。我正在尝试使用工作表来评估代码。 但我得到的只有两个错误: 更新:现在它在Intellij13.1.5、Scala Plugin0.41.2和Scala-2.10和2.11下都能正常工作

  • 问题内容: 我有2个div,父母和孩子,我希望孩子的左侧(左边框)位于父母的中心。 为什么此代码不起作用?那是给孩子的,不起作用。 CSS: 问题答案: 您需要设置为或:

  • 我正在学习Spring Boot来构建应用程序。我试图用不同包中的控制器作为应用程序来构建我的第一个Spring Boot应用程序。Tomcat实例出现,但请求没有到达为URI注册的RestController。 以下是控制器类: 以下是应用程序类: Pom.xml tomcat启动时的日志: 我添加了基本包扫描,甚至尝试了注释,但当我点击URL(http://localhost:8080/abc

  • 这里有一个移动自动化的新人。。我正在尝试以下代码,使用触摸操作执行滑动操作以导航到第2页,但滑动不起作用。 其他一切都很好。由于刷卡不起作用,我为两个页面检索相同的内容。请纠正我哪里错了?

  • 我编写了一组简单的类,向一位朋友演示如何为AOP(而不是xml配置)使用注释。我们无法使@ComponentScan工作,并且AnnotationConfigApplicationContext getBean的行为也不正常。我想明白两件事。请参阅下面的代码: PersonOperationSI.java PersonOperations.java PersonOperationsConfigCl