У меня не так много опыта в инфраструктурах проверки подлинности Java и в процессе проверки подлинности в целом (только некоторые теоретические знания), поэтому для образовательных целей я пытаюсь создать этот тип аутентификации для моего HTTP-приложения:
- Клиент отправляет логин + пароль на
/login
. - Широ регистрирует пользователя по заданным учетным данным. Сервер возвращает клиенту свой
sessionId
. - Клиент запрашивает какой-то ресурс
/myresource?sessionId=1234567
. - Сиро регистрируется в Субъекте по заданному
sessionId
. Затем сервер выполняет обычный рабочий процесс получения/myresource
(с правами доступа на уровне метода управления Shiro).
В основном у меня есть следующие вопросы:
- Думаю, мне не нужны сеансы HTTP и сеансы сервлета. У Сиро есть собственный менеджер сеансов, которого достаточно для моих нужд. Я не прав?
- Является ли хорошей практикой предоставление клиенту реального sessionId или я должен отправить какой-то сеансToken (который разрешен для sessionId на стороне сервера)?
- Как мне войти в Subject с помощью sessionId (который клиент должен хранить локально)?
- Есть ли какие-либо другие вещи, которые мне нужно знать, прежде чем выполнять такую проверку подлинности?
Спасибо заранее.