Поделитесь зарегистрированной темой с фильтром - PullRequest
0 голосов
/ 15 мая 2019

Я внедряю единый вход в приложение, которое в настоящее время поддерживает аутентификацию формы.В качестве основы безопасности я использую shiro.

У меня есть сервлет, который получает утверждения saml и регистрирует пользователя следующим образом:

Subject subject = SecurityUtils.getSubject();
subject.login(new SAMLToken(assertions));

Тема успешно аутентифицирована, но в соответствии со спецификациями shiroТолько на эту тему.Проблема в том, что у меня есть фильтр аутентификации, который работает в другом потоке, и я хотел бы, чтобы этот субъект также проходил аутентификацию в этом потоке.

Возможно ли достичь этого?Спасибо!

1 Ответ

0 голосов
/ 15 мая 2019

Возможно, вы создадите фильтр (аналогичный одному из них) , где вы преобразуете входящий запрос в свой токен SAML.Все управление сессиями (и вызов login()) будут обработаны для вас.

Например, для базовой аутентификации токен создается из заголовка запроса:

https://github.com/apache/shiro/blob/f782eb1084df73eff3e2ac0f9780cb4a4f429041/web/src/main/java/org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.java#L353-L374

...