仅将PreAuthorize应用于第一种服务方法

时间:2019-08-18 22:15:26

标签: spring-boot spring-security

我正在暴露服务方法的控制器,并且服务接口具有@PreAuthorize检查,但是有时一个服务调用另一个服务,而我只想检查第一个服务的条件。

例如:

public interface UserService {
   @PreAuthorize(/*Condition A*/)
   public User getUser();
}
public interface PermissionService {
   @PreAuthorize(/*Condition B*/)
   public User getPermission();
}

UserService实现调用PermissionService的方法:

public class PermissionServiceImpl implements PermissionService {

   public User getPermission() {
      // ...
      permissionService.getPermission();
      // ...
   }
}

是否仅当通过UserService的控制器调用UserService时才应用条件A,而通过其控制器的PermissionService调用条件B时才应用条件B?

1 个答案:

答案 0 :(得分:0)

根据Scorpioo590的建议,我不得不将预授权检查移至Controller层