I'm trying to simulate a login using the ProgrammaticLogin class in my arquillian tests in an embedded glassfish. my code is the following:

System.setProperty("java.security.auth.login.config","path/login.config")
com.sun.appserv.security.ProgrammaticLogin loginP = new ProgrammaticLogin();
    try{
        loginP.login("user1","password","fileRealm",true);
    }
    catch (Exception e){
        System.out.println(e.getMessage());
    }

i'm getting the following exception:

SEVERE: SEC9050: Programmatic login failed
com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Failed file login for user1.
    at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:394)
    at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:240)
    at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:153)
    at com.sun.appserv.security.ProgrammaticLogin$1.run(ProgrammaticLogin.java:174)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:168)
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:239)
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:211)

I've added a properties file users.properties that contains the login and the password.

没有正确的解决方案

其他提示

If the glassfish container runs in it's own process, the property you define using System.setProperty() is not available. It's only available inside the test, which runs in a different process. Maybe you should add a bean to your deployment that sets the property using @PostConstruct.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top