2011-01-11 7 views
6

Devo fornire la password per il keystore nel mio EJB ma non voglio che sia visibile agli sviluppatori. La mia idea era di creare Alias ​​di autenticazione in Websphere Console e successivamente cercare MY_ALIAS e ottenere la password dall'alias. Ho trovato alcune discussioni relative all'argomento: http://www.coderanch.com/t/79439/Websphere/Authentication-DataCome accedere alias di autenticazione da EJB distribuito a Websphere 6.1

Qualcuno sa che l'alias può essere visualizzato? Qual è il tuo metodo suggerito per raggiungere il mio obiettivo?

Grazie mille!

risposta

6

È possibile utilizzare il seguente codice per ottenere le credenziali da immissione dei dati di autenticazione J2C:

import com.ibm.wsspi.security.auth.callback.Constants; 
import com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandlerFactory; 
import javax.resource.spi.security.PasswordCredential; 
import javax.security.auth.Subject; 
import javax.security.auth.callback.CallbackHandler; 
import javax.security.auth.login.LoginContext; 

Map map = new HashMap(); 
map.put(Constants.MAPPING_ALIAS, "YOUR_J2C_DATA_ALIAS"); 
CallbackHandler callbackHandler = WSMappingCallbackHandlerFactory.getInstance().getCallbackHandler(map, null); 

LoginContext loginContext = new LoginContext("DefaultPrincipalMapping", callbackHandler); 
loginContext.login(); 

Subject subject = loginContext.getSubject(); 
Set credentials = subject.getPrivateCredentials(); 

PasswordCredential passwordCredential = (PasswordCredential) credentials.iterator().next(); 

String user = passwordCredential.getUserName(); 
String password = new String(passwordCredential.getPassword()); 
+0

Il tutto ha funzionato come un fascino! – Jay

+0

Mi chiedo se c'è un modo per farlo senza fare riferimento alle classi specifiche di Websphere ('Costanti' e' WSMappingCallbackHandlerFactory')? – FGreg

+0

@FGreg Non penso sia possibile. È materiale specifico per WAS, quindi si dovrebbe assumere l'uso di alcune classi specifiche. A proposito, questi fanno parte dell'API WAS pubblica. Hai qualche problema ad usarlo? – fnt

Problemi correlati