]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.jcr/src/org/argeo/cms/jcr/gcr/JcrContentSession.java
1 package org
.argeo
.cms
.jcr
.gcr
;
3 import java
.security
.PrivilegedAction
;
4 import java
.util
.Locale
;
6 import javax
.jcr
.Repository
;
7 import javax
.jcr
.RepositoryException
;
8 import javax
.jcr
.Session
;
9 import javax
.security
.auth
.Subject
;
11 import org
.argeo
.api
.gcr
.ContentSession
;
12 import org
.argeo
.jcr
.JcrException
;
14 public class JcrContentSession
implements ContentSession
{
15 private Repository jcrRepository
;
16 private Subject subject
;
17 private Locale locale
;
18 private Session jcrSession
;
20 protected JcrContentSession(Repository jcrRepository
, Subject subject
, Locale locale
) {
21 this.jcrRepository
= jcrRepository
;
22 this.subject
= subject
;
24 this.jcrSession
= Subject
.doAs(this.subject
, (PrivilegedAction
<Session
>) () -> {
26 return jcrRepository
.login();
27 } catch (RepositoryException e
) {
28 throw new JcrException("Cannot log in to repository", e
);
34 public Subject
getSubject() {
39 public Locale
getLocale() {
43 public Session
getJcrSession() {