У меня есть этот код для создания конфигурации клиента Java для соединения с сервером приложений JBoss:
System.setProperty( "java.security.auth.login.config", "auth.conf" );
LoginContext auth = new LoginContext( "myAuth",
new LoginCallbackHandler( username, password ) );
auth.login();
Файл auth.conf
содержит следующие строки:
myAuth {
org.jboss.security.ClientLoginModule required;
};
Теперь, где-то в другом месте в коде (LoginContext auth
не известен там), у меня есть EJB, который делает a initialContext.lookup( jndiName )
и a narrow()
получить доступ к Бобу на сервере приложений JBoss. Это narrow
только успешно выполняется, если данные для входа первого шага были корректны.
Как данные для входа распространяют от LoginContext
к narrow()
? Я не вижу соединения между этими двумя местами.
И далее, как я мог сделать два или больше различных логина в одном клиенте?
Я нашел хорошее объяснение в документации JBoss (глава 8.4.1) :
login () Вызов
связывает имя и пароль только с уровнем JBoss EJB клиента. Все последующие вызовы EJB будут использовать эти учетные данные и передавать их вызываемому методу EJB.