【发布时间】:2015-07-30 17:37:34
【问题描述】:
我想使用 Spring Data JPA 的安全扩展支持来检查用户的权限并相应地获取一些值。我正在尝试按照here
的指示执行此操作下面是我的代码sn-p
@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();
}
我确实只通过复制粘贴代码来声明 SecurityEvaluationContextExtension 类和 securityExtension bean。但是,上面的代码仍然不起作用。
我总是得到一个
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ?
我尝试了几个选项来玩弄 ?#、:#、hasRole、hasAuthority 等。似乎没有任何效果。
对此有什么想法吗?
【问题讨论】:
标签: spring-security spring-data spring-data-jpa spring-el