Obtendo o Subject RunAs do Encadeamento para JAAS
O objeto RunAs, ou objeto da chamada, contém as informações de autenticação do usuário para o modo RunAs definido no descritor de implementação do aplicativo para este método.
Antes de Iniciar
Sobre Esta Tarefa
O objeto RunAs (ou objeto da chamada) contém as informações de autenticação do usuário para o modo RunAs definido no descritor de implementação do aplicativo para este método. Este objeto é marcado como de leitura quando retornado da API (Interface de Programação de Aplicativo) WSSubject.getRunAsSubject para evitar a substituição de objetos existentes.
A maioria dos dados no Objeto não é propagada na direção do fluxo 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
- Acesse a credencial WSCredential. A credencial WSCredential é documentada na documentação da API.
- Coloque ou defina os dados no mapa de hash da credencial.
Exemplo
try { javax.security.auth.Subject runas_subject;
com.ibm.websphere.security.cred.WSCredential runas_cred;
runas_subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
if (runas_subject != null) { runas_cred = runas_subject.getPublicCredentials
com.ibm.websphere.security.cred.WSCredential.class).iterator().next();
String RUNASDATA = (String) runas_cred.get ("MYKEY")
System.out.println("My data from the RunAs credential is: " + RUNASDATA ); } }
catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }