已从其他服务授权的Spring Security @secured方法

时间:2019-05-03 13:47:53

标签: spring spring-boot spring-security

据我了解,在Spring Security中,您可以使用两种安全方法。我可能只授权一种方法,但是如果我通过自己拥有授权的另一种方法输入,我很好...除非是针对另一种服务。我想知道是否有一种方法(通过设置或注释)即使通过调用不同的服务也能保持授权。

以下是具有ROLE_READ的用户的路径:

Controller -> Svc1.getData -> sv2.lookupUser

这是另一个路径ROLE_ADMIN:

ControllerB -> Sv2.lookupUser

代码大纲:

@Service
class Svc1 {
@Resource
Svc2 svc2
....
@Secured(["ROLE_READ"])
Iterable<Data> getData() {
    //do stuff here
    User user = svc2.lookupUser()
}


@Service
class Svc2 {
....
@Secured(["ROLE_ADMIN"])
User lookupUser() {
    //do stuff here
    user
}

同样,我知道,如果这些方法在同一Service中,那一切都很好。我知道,如果我使用“ ROLE_READ” 创建另一个 lookupUserRestricted 方法,则可以委托给目标方法,从而解决问题。只是好奇是否有其他选择。

所以

Controller -> Svc1.getData -> ["ROLE_READ"]svc2.lookupUserRestricted -> sv2.lookupUser

0 个答案:

没有答案