Доброго всем времени суток! Столкнулся с ошибкой "No LoginModules configured for default" при попытке вызвать @Remote EJB метод с проверкой роли пользователя. Авторизации не происходит. Уже 3й день проблема не решается.
На сервере Glassfish(5.0.1) настроен JDBCRealm с именем "jdbc-realm", через браузер аутентификация выполняется правильно. Ошибки в упор не вижу!
Метод:
@Override
public String sayHellowSecurity(String name) {
if (!ctx.isCallerInRole("ADMIN")){
return "FU, you doesnot have permissions!";
}else{
return "Hello, SECURITY "+name+"!";
}
}
Вызываю так:
public static void main(String[] args) {
try {
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"
);
props.setProperty("org.omg.CORBA.ORBInitialHost", "127.0.0.1");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
ProgrammaticLogin pm = new ProgrammaticLogin();
pm.login("admin@mail.ru", "Aa123456".toCharArray(), "jdbc-realm", false);
InitialContext ctx = new InitialContext(props);
UserEJBRemote userejb = (UserEJBRemote) ctx.lookup("userejb");
System.out.println("RESULT: " + userejb.sayHellowSecurity("world!"));
pm.logout();
//mySessionBean.persist(user);
} catch (javax.naming.NamingException ne) {
ne.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
И получаю ошибку:
авг 18, 2018 4:08:00 AM com.sun.enterprise.security.ee.auth.login.ProgrammaticLogin login
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:891)
at com.sun.enterprise.security.common.AppservAccessController.doPrivileged(AppservAccessController.java:61)
at com.sun.enterprise.security.auth.login.LoginContextDriver.doClientLogin(LoginContextDriver.java:882)
at com.sun.enterprise.security.ee.auth.login.ProgrammaticLogin$1.run(ProgrammaticLogin.java:183)
at com.sun.enterprise.security.ee.auth.login.ProgrammaticLogin$1.run(ProgrammaticLogin.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.security.ee.auth.login.ProgrammaticLogin.login(ProgrammaticLogin.java:168)
at ru.deviantdev.noapplication.Main2.main(Main2.java:32)
Caused by: javax.security.auth.login.LoginException: No LoginModules configured for default
at javax.security.auth.login.LoginContext.init(LoginContext.java:264)
at javax.security.auth.login.LoginContext.<init>(LoginContext.java:381)
at javax.security.auth.login.LoginContext.<init>(LoginContext.java:458)
at com.sun.enterprise.security.auth.login.LoginContextDriver$9.run(LoginContextDriver.java:885)
... 7 more
RESULT: FU, you doesnot have permissions!
Process finished with exit code 0
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет Помогите написать регулярку для номера телефона С такой вот маской
Работаю с konva У меня есть массив квадратов такого типа
При нажатие на картинку выполняется этот код modalImgsrc = this