]> git.argeo.org Git - lgpl/argeo-commons.git/blob - JcrAuthenticationToken.java
865508317e9a12d68b9476a30783a64904bb8db5
[lgpl/argeo-commons.git] / JcrAuthenticationToken.java
1 package org.argeo.security.jcr;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.ArgeoException;
7 import org.argeo.security.SiteAuthenticationToken;
8 import org.springframework.security.GrantedAuthority;
9
10 public class JcrAuthenticationToken extends SiteAuthenticationToken {
11 private static final long serialVersionUID = -2736830165315486169L;
12 private final transient Node userHome;
13
14 public JcrAuthenticationToken(Object principal, Object credentials,
15 GrantedAuthority[] authorities, String url, Node userHome) {
16 super(principal, credentials, authorities, url,
17 extractWorkspace(userHome));
18 this.userHome = userHome;
19 }
20
21 private static String extractWorkspace(Node userHome) {
22 try {
23 return userHome.getSession().getWorkspace().getName();
24 } catch (RepositoryException e) {
25 throw new ArgeoException("Cannot extract workspace of " + userHome,
26 e);
27 }
28 }
29
30 public Node getUserHome() {
31 return userHome;
32 }
33
34 }