Как получить доступ к псевдониму аутентификации из EJB, развернутого в Websphere 6.1 - PullRequest
6 голосов
/ 12 января 2011

Мне нужно предоставить пароль для хранилища ключей в моем EJB, но я не хочу, чтобы он был виден разработчикам.Моя идея состояла в том, чтобы создать псевдоним аутентификации в Websphere Console, а затем найти MY_ALIAS и получить пароль от псевдонима.Я нашел обсуждение по теме: http://www.coderanch.com/t/79439/Websphere/Authentication-Data

Кто-нибудь знает, можно ли искать псевдоним?Какой метод вы предлагаете для достижения моей цели?

Большое спасибо!

1 Ответ

7 голосов
/ 15 июня 2011

Вы можете использовать следующий код для получения учетных данных при вводе данных аутентификации 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());
...