Как сохранить аутентифицированного пользователя в JASPIC?
Я разработал модуль аутентификации безопасности (SAM) и реализовалvalidateRequest
метод. У меня также есть простой веб-приложение, настроенное для использования этого SAM.
В моемvalidateRequest
метод, я проверяю clientSubject и устанавливаюCallerPrincipalCallback
с жестко заданным именем пользователя иGroupPrincipalCallback
с жестко заданным названием группы:
final CallerPrincipalCallback callerPrincipalCallback = new CallerPrincipalCallback(clientSubject, "anonymous");
final GroupPrincipalCallback groupPrincipalCallback = new GroupPrincipalCallback(clientSubject, new String[] {"user"});
try {
this.handler.handle(new Callback[] {callerPrincipalCallback, groupPrincipalCallback});
} catch (IOException | UnsupportedCallbackException e) {
logger.error(e.getMessage());
}
Я заметил, что каждый раз, когда я обновляю сервлет в моем веб-приложении, тема клиента просто пуста,logger.debug("Client: {}", clientSubject);
:
2015-05-05 11:21:02,200 DEBUG n.m.j.s.Saml2AuthModule [http-listener-1(2)] Client: Subject:
Можно ли как-то «сохранить» тему, чтобы тема была присоединена к сеансу, и я могу просто пропустить вход в систему одного и того же пользователя каждый раз?
РЕДАКТИРОВАТЬ Я думаю, что нашел способ вручную сохранить его вHttpSession
: req.getSession().setAttribute("subject", user);
Не красиво, но это работает.