Auth0 + Grails 3 + Безопасность Spring

мой проект — это клиентское приложение (angular4) и сервер API (grails3), и мы хотели бы начать использовать Auth0. Если я правильно понял, с использованием JWT я могу иметь архитектуру API "без сеанса" со следующим потоком:

1) пользователь в клиентском приложении логин (например, с замком)

2) все запросы к API будут содержать токен jwt, а API может "проверить" токен + добавить роли (роли могут быть привязаны к "token_id", например, в качестве пользовательских утверждений).

Текущая безопасность API обеспечивается Spring Security:

  • у нас есть статическое правило в файле конфигурации

    шаблон: '/rest/**' доступ: ['ROLE_USER']>

  • когда ресурс «публичный», мы просто аннотируем метод в контроллере @Secured(['permitAll'])

  • пользователь входит в приложение (запрос ajax от углового клиента к серверу API), а Spring Security сохраняет свои роли в сеансе

Вот мой вопрос:

  • Можно продолжать использовать нашу конфигурацию безопасности с Auth0+JWT (таким образом, каждый запрос к серверу API будет содержать JWT, будет некий "перехватчик", который проверит tokenId, расшифрует его, добавит роли, а затем Spring Security просто проверит если у пользователя есть надлежащая роль для доступа к службе API, поскольку пользователь будет зарегистрирован, а его роли будут сохранены в сеансе).
  • Существует ли такой "перехватчик"?

Большое спасибо !


person Mato.Duris    schedule 21.09.2017    source источник


Ответы (1)


Взгляните на этот плагин http://plugins.grails.org/plugin/grails/spring-security-rest. Он работает поверх Spring Security и поддерживает аутентификацию JWT, и вам не нужно много менять в своем коде.

person Evgeny Smirnov    schedule 22.09.2017
comment
Большое спасибо, кажется, это именно то, что я искал. Спасибо - person Mato.Duris; 08.10.2017