¿Cómo guardar un usuario autenticado en JASPIC?
Desarrollé un Módulo de autenticación de seguridad (SAM) e implementé elvalidateRequest
método. También tengo una aplicación web simple configurada para usar este SAM.
En mivalidateRequest
método, verifico el clientSubject y establezco unCallerPrincipalCallback
con un nombre de usuario codificado y unGroupPrincipalCallback
con un nombre de grupo codificado:
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());
}
Noté que cada vez que actualizo un servlet en mi aplicación web, el asunto del cliente simplemente está en blanco,logger.debug("Client: {}", clientSubject);
:
2015-05-05 11:21:02,200 DEBUG n.m.j.s.Saml2AuthModule [http-listener-1(2)] Client: Subject:
¿Es posible "guardar" un tema de alguna manera para que el tema se adjunte a la sesión y simplemente pueda omitir el inicio de sesión en el mismo usuario cada vez?
EDITAR Creo que encontré un camino almacenándolo manualmente en elHttpSession
: req.getSession().setAttribute("subject", user);
No es bonita, pero funciona.