相关疑难解决方法(0)

如何在Spring Boot中使用Spring管理的Hibernate拦截器?

是否有可能在Spring Boot中集成Spring管理的Hibernate拦截器(http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch14.html)?

我正在使用Spring Data JPA和Spring Data REST,并且需要一个Hibernate拦截器来对实体上的特定字段进行更新.

使用标准JPA事件,不可能获得旧值,因此我认为我需要使用Hibernate拦截器.

hibernate spring-data spring-data-jpa spring-data-rest spring-boot

32
推荐指数
6
解决办法
4万
查看次数

MethodSecurityInterceptor用于多个方法

我想使用Spring Security保护我的服务层.正如文档中所解释的,我需要使用一个MethodSecurityInterceptor来检查是否允许方法调用.

要确定是否允许给定用户进行服务方法调用,影响调用方法(使用MethodSecurityMetadataSource)所需的角色对我来说是不够的,因为它还取决于传递给方法的参数.正如文档中所建议的,我可以编写自定义AccessDecisionVoter并通过安全对象访问参数(MethodInvocation在本例中).

但是,我的授权逻辑在方法上是不同的.例如,多个方法之间的参数可能不同,授权逻辑也不同.

我看到两个选择:

  • 我可以使用条件逻辑AccessDecisionVoter来确定要使用的调用方法和授权逻辑,但它似乎是一个丑陋的解决方案.
  • 我可以为MethodSecurityInterceptor每个方法定义一个安全.根据Spring文档,a MethodSecurityInterceptor用于保护许多方法,因此它让我觉得还有另一种方法.

方法调用(使用AfterInvocationProvider)后的访问决策存在同样的问题.

有哪些替代方案?

java spring-security

6
推荐指数
1
解决办法
2492
查看次数