Java EE Glassfish ProgrammaticLogin. “No LoginModules configured for default”

185
07 ноября 2018, 14:40

Доброго всем времени суток! Столкнулся с ошибкой "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
READ ALSO
Регулярка для номера телефона

Регулярка для номера телефона

Всем привет Помогите написать регулярку для номера телефона С такой вот маской

186
Konvajs. Как получить объект при нажатии?

Konvajs. Как получить объект при нажатии?

Работаю с konva У меня есть массив квадратов такого типа

203
Выдернуть значение тега выше на одно дом дерево элемента. JS/JQuery

Выдернуть значение тега выше на одно дом дерево элемента. JS/JQuery

При нажатие на картинку выполняется этот код modalImgsrc = this

171