Wie speichere ich einen authentifizierten Benutzer in JASPIC?

Ich habe ein Security Authentication Module (SAM) entwickelt und das @ implementievalidateRequest Methode. Ich habe auch eine einfache Web-App konfiguriert, um diese SAM zu verwenden.

In meinemvalidateRequest -Methode überprüfe ich das clientSubject und setze einCallerPrincipalCallback mit einem fest codierten Benutzernamen und einemGroupPrincipalCallback mit einem fest codierten Gruppennamen:

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());
}

Ich habe festgestellt, dass bei jeder Aktualisierung eines Servlets in meiner Webanwendung der Betreff des Clients einfach leer ist.logger.debug("Client: {}", clientSubject);:

2015-05-05 11:21:02,200 DEBUG n.m.j.s.Saml2AuthModule [http-listener-1(2)] Client: Subject:

Ist es möglich, einen Betreff irgendwie zu "speichern", so dass der Betreff an die Sitzung angehängt wird und ich es einfach überspringen kann, mich jedes Mal bei demselben Benutzer anzumelden?

BEARBEITE Ich glaube, ich habe einen Weg gefunden, indem ich ihn manuell im @ gespeichert habHttpSession: req.getSession().setAttribute("subject", user); Nicht schön, aber es funktioniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage