]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.jackrabbit/ext/test/org/argeo/security/jackrabbit/JackrabbitAuthTest.java
Publish Jackrabbit repositories as such.
[lgpl/argeo-commons.git] / org.argeo.security.jackrabbit / ext / test / org / argeo / security / jackrabbit / JackrabbitAuthTest.java
1 package org.argeo.security.jackrabbit;
2
3 import java.net.URL;
4 import java.security.PrivilegedExceptionAction;
5
6 import javax.jcr.Repository;
7 import javax.jcr.Session;
8 import javax.security.auth.Subject;
9 import javax.security.auth.login.LoginContext;
10
11 import org.apache.commons.logging.Log;
12 import org.apache.commons.logging.LogFactory;
13 import org.argeo.jackrabbit.unit.AbstractJackrabbitTestCase;
14
15 public class JackrabbitAuthTest extends AbstractJackrabbitTestCase {
16 private final Log log = LogFactory.getLog(JackrabbitAuthTest.class);
17
18 public void testLogin() throws Exception {
19 Subject subject = new Subject();
20 LoginContext loginContext = new LoginContext("SYSTEM", subject);
21 loginContext.login();
22 Subject.doAs(subject, new PrivilegedExceptionAction<Void>() {
23
24 @Override
25 public Void run() throws Exception {
26 Repository repository = getRepository();
27 Session session = repository.login();
28 log.debug(session.getUserID());
29 return null;
30 }
31 });
32 }
33
34 @Override
35 protected Repository createRepository() throws Exception {
36 URL url = getClass().getResource("test_jaas.config");
37 System.setProperty("java.security.auth.login.config", url.toString());
38 return super.createRepository();
39 }
40
41 @Override
42 protected void clearRepository(Repository repository) throws Exception {
43 System.setProperty("java.security.auth.login.config", "");
44 }
45
46 @Override
47 protected String getRepositoryConfigResource() {
48 return "/org/argeo/security/jackrabbit/repository-memory-test.xml";
49 }
50
51 }