Насколько я понимаю, в весенней безопасности вы можете использовать два безопасных метода.У меня может быть только авторизация для одного метода, но если я вхожу через другой метод, для которого у меня действительно есть авторизация, я в порядке ... ЕСЛИ это не для другой службы.Я хотел бы знать, есть ли способ (через настройки или аннотации) оставаться авторизованным даже при вызовах различных служб.
Вот путь для пользователя с 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
}
Опять же, я понимаю, что если эти методы находятся в одном и том же Сервисе, это все хорошо.Я знаю, что если я создам другой lookupUserRestricted метод с "ROLE_READ" , я могу делегировать его целевому методу и, таким образом, устранить проблему.Просто любопытно, есть ли альтернатива.
Так что-то вроде
Controller -> Svc1.getData -> ["ROLE_READ"]svc2.lookupUserRestricted -> sv2.lookupUser