Obtención del sujeto del emisor de la hebra para JAAS
El sujeto del emisor (o el "sujeto recibido") contiene la información de autenticación del usuario que se utiliza en la llamada para esta petición. Este sujeto se devuelve después de emitir la interfaz de programación de aplicaciones WSSubject.getCallerSubject para que no se sustituyan los objetos existentes. El sujeto se marca como de sólo lectura. Esta API se puede utilizar para acceder a WSCredential, por lo que puede poner o establecer datos en el hashmap incluido en la credencial.
Antes de empezar
Necesita los siguientes permisos de seguridad de Java™ 2 para ejecutar esta API: permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject";.
Si utiliza el mecanismo de autenticación Kerberos, la política KDC habilita la delegación de Kerberos y el cliente tiene un ticket Kerberos reenviable, el sujeto tiene los tickets del cliente Kerberos y la credencial delegada GSS. Puede utilizar API para acceder a los tickets Kerberos y la credencial delegada GSS.
Acerca de esta tarea
La mayoría de los datos del sujeto no se propagan en sentido descendente a otro servidor. Sólo la señal de credencial incluida en WSCredential se propaga en sentido descendente y se genera un nuevo sujeto de emisor.
Procedimiento
Ejemplo
try { javax.security.auth.Subject caller_subject; com.ibm.websphere.security.cred.WSCredential caller_cred;
caller_subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
if (caller_subject != null) { caller_cred = caller_subject.getPublicCredentials
(com.ibm.websphere.security.cred.WSCredential.class).iterator().next();
String CALLERDATA = (String) caller_cred.get ("MYKEY");
System.out.println("My data from the Caller credential is: " + CALLERDATA); } }
catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }