Unable to login to JCR repository with credentials
dalbani May 18, 2013 11:58 AMHello,
I've installed ModeShape 3.2.0.Final on Jboss EAP 6.1.
Access through REST and WebDav works fine.
However, I couldn't make my JCA-based application login to a JCR repository with credentials.
Here's some sample code:
@Resource(mappedName = "java:/jcr/myrepository") private javax.jcr.Repository repository; ... Credentials credentials = new SimpleCredentials("admin", "admin".toCharArray()); Session session = repository.login(credentials);
That generates an error:
15:26:59,763 ERROR [org.jboss.security] (http-/0.0.0.0:8080-1) PBOX000261: Failed to load users/passwords/roles files: java.io.IOException: PBOX000072: Properties file modeshape-users.properties/defaultUsers.properties not found at org.jboss.security.auth.spi.Util.loadProperties(Util.java:212) [picketbox-4.0.16.Final-redhat-1.jar:4.0.16.Final-redhat-1] at org.jboss.security.auth.spi.UsersRolesLoginModule.loadUsers(UsersRolesLoginModule.java:205) [picketbox-4.0.16.Final-redhat-1.jar:4.0.16.Final-redhat-1] at org.jboss.security.auth.spi.UsersRolesLoginModule.createUsers(UsersRolesLoginModule.java:219) [picketbox-4.0.16.Final-redhat-1.jar:4.0.16.Final-redhat-1] at org.jboss.security.auth.spi.UsersRolesLoginModule.initialize(UsersRolesLoginModule.java:146) [picketbox-4.0.16.Final-redhat-1.jar:4.0.16.Final-redhat-1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_21] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_21] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_21] at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext.invoke(LoginContext.java:771) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext$4.run(LoginContext.java:698) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext$4.run(LoginContext.java:696) [rt.jar:1.7.0_21] at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:695) [rt.jar:1.7.0_21] at javax.security.auth.login.LoginContext.login(LoginContext.java:594) [rt.jar:1.7.0_21] at org.modeshape.jcr.security.JaasSecurityContext.<init>(JaasSecurityContext.java:115) at org.modeshape.jcr.security.JaasSecurityContext.<init>(JaasSecurityContext.java:82) at org.modeshape.jcr.security.JaasProvider.authenticate(JaasProvider.java:126) at org.modeshape.jcr.security.AuthenticationProviders.authenticate(AuthenticationProviders.java:72) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:624) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:152)
The file "modeshape-users.properties" does exist (mentioning admin & guest users). However, there's no file named "defaultUsers.properties" in my EAP install.
What am I doing wrong ?
How come the REST and WebDav apps manage to login to repositories with credentials? I couldn't find what makes the difference in their source code...
Thanks a lot.