【发布时间】:2012-11-25 02:29:18
【问题描述】:
我正在尝试通过在我的存储库接口上使用 @PreAuthorize 注释来保护 Spring-Data 存储库(因为大多数方法都是继承的),以便所有方法都得到保护。 结果是我的接口中包含的任何自定义方法都没有通过 Spring-Data 接口继承的所有方法获得安全性。 在扩展超级接口的简单组件接口上应用相同的东西将正常工作。 我不确定这是 Spring-Security 还是 Spring-Data 问题。我会很感激一些帮助解决这个问题。 可以在http://forum.springsource.org/showthread.php?133083-Using-PreAuthorize-on-SpringData-repositories 下载工作服务设置和非工作 Spring-Data 存储库的单元测试示例。失败的 testSuperRepositoryWithUser 应该得到一个 AccessDeniedException,但 @PreAuthorize 注释不适用于 JpaRepository 接口。
【问题讨论】:
-
在 xml 配置中使用保护切入点启用安全性时,同样的问题也适用。
-
您是否有“正常”情况(Repository1.findAll() 和 Repository2.findAll() 具有不同的允许角色列表)或简化的情况(所有存储库的所有 findAll() 方法具有相同的列表允许的角色)?
标签: spring-security spring-data spring-data-jpa