запустите framework 2, создайте пользовательский аутентификатор на основе sql с помощью pac4j

#java #playframework #pac4j

#java #playframework #pac4j

Вопрос:

=== Обновление 20190327 ===

Спасибо за комментарии, но демонстрация не сильно помогла. Покопавшись в исходном коде, я получил лучшее представление о фреймворке.

Что мне нужно, так это

  • Пользовательский клиент, который расширяет BasicClient , так что пользовательский CredentialsExtractor может быть введен в фреймворк. (Поскольку мой токен доступа пользователя не может быть извлечен с помощью ParameterClient)
  • Пользовательский CredentialsExtractor, который реализует, CredentialsExtractor который вы передаете во фреймворк в пользовательском клиенте (метод переопределения clientInit ).
  • Наконец, пользовательский аутентификатор, который передается в пользовательский клиент.

У меня это сработало.

=== Оригинал ===

У меня есть существующее приложение play 2.6. Я интегрирую pac4j и пытаюсь заставить аутентификацию работать. Игровой сервер предоставляет REST api. Если я правильно понимаю, то мне нужен http-клиент с аутентификатором sql.

http://www.pac4j.org/3.3.x/docs/authenticators/sql.html

Как указано в документе, необходим DbProfileService. но он предполагает определенную схему таблиц пользователей, которая не будет работать с существующей базой данных.

Итак, я полагаю, мне нужно реализовать пользовательский аутентификатор. Но я не смог найти ни одного полезного примера в Интернете.

Итак, кто-нибудь может просветить меня, или я на неправильном пути выполнения этой работы?

Комментарии:

1. Вот фиктивный пример github.com/pac4j/play-pac4j-java-demo/blob/master/app/modules / … но это показывает путь

2. @AndriyKuba Спасибо за комментарий. Я добился проверки подлинности. Теперь я пытаюсь заставить авторизацию работать. Есть ли такие вещи, как @RequiresRoles, которые предоставляет pac4j. Я не смог его найти.

3. проверьте тот же демонстрационный проект — github.com/pac4j/play-pac4j-java-demo/blob/master/app /…