Obtendo o Subject do Responsável pela Chamada do Encadeamento para JAAS
O assunto Responsável pela Chamada (ou "assunto recebido") contém as informações de autenticação do usuário usadas na chamada desta solicitação. Este objeto é retornado após a emissão da API (Interface de Programação de Aplicativo) WSSubject.getCallerSubject para evitar a substituição de objetos existentes. O objeto está marcado como de leitura. Esta API pode ser utilizada para obter acesso à credencial WSCredential para que seja possível colocar ou definir dados no mapa de hash da credencial.
Antes de Iniciar
É necessário as permissões de segurança do Java™ 2 a seguir para executar esta API: permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject";.
Se você usar o mecanismo de autenticação Kerberos, a política KDC ativará a delegação do Kerberos e o cliente terá um bilhete Kerberos redirecionável, o assunto terá os bilhetes Kerberos do cliente e a credencial de delegação GSS. É possível usar APIs para acessar os bilhetes Kerberos e a credencial de delegação GSS.
Sobre Esta Tarefa
A maior parte dos dados do assunto não são propagados no recebimento de dados para outro servidor. Apenas o token da credencial na credencial WSCredential é propagado no recebimento de dados e é gerado um novo objeto do responsável pela chamada.
Procedimento
Exemplo
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 }