Я хочу получить безопасный доступ к EJB. Я разрабатываю приложение eclipse rcp
и хочу подключиться к серверу glassfish 3.1.1
, на котором защищены некоторые EJB
, и я хочу подключиться к этим EJB
, используя Java EE 6 security
Я нашел что-то вроде этого:
ProgrammaticLogin pm = new ProgrammaticLogin();
pm.login(usernameText.getText(), passwordText.getText());
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
// optional. Defaults to localhost. Only needed if web server is running on a different host than the appserver
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
// optional. Defaults to 3700. Only needed if target orb port is not 3700.
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
try
{
Context ctx = new InitialContext(props);
}
catch (NamingException e)
{
e.printStackTrace();
}
Я включил все jar
из GlassFish appclient.jar glassfish3/glassfish/bin/package-appclient
Примеры ошибок:
SEVERE: SEC9050: Programmatic login failed
com.sun.enterprise.security.auth.login.common.LoginException: javax.security.auth.login.LoginException: No LoginModules configured for default
at com.sun.enterprise.security.auth.login.LoginContextDriver$9.run(LoginContextDriver.java:889)
...
Знаете ли вы, как безопасно войти в EJB
s любым способом для настольного приложения?
Мои ссылки:
Если вы знаете ответ... не могли бы вы привести примеры?
Заранее спасибо!
login.conf
. Здесь может быть указано много, если вы не укажете, код попытается найти запись по умолчанию, что-то вроде следующего.deafult { com.sun.enterprise.security.auth.login.FileLoginModule required; };
Но в вашей конфигурации нет этой записи, которая будет использоваться для аутентификации пользователя. В автономном режиме вам также необходимо добавитьSystem.setProperty("java.security.auth.login.config", authFile);
, чтобы помочь вашему коду найти файл конфигурации. - person PHP Avenger   schedule 06.07.2014