]> git.argeo.org Git - lgpl/argeo-commons.git/blob - JcrAuthorization.java
3832a15685867d5d2213733ad1201faec9fd7ccd
[lgpl/argeo-commons.git] / JcrAuthorization.java
1 package org.argeo.cms.internal.useradmin;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import org.osgi.service.useradmin.Authorization;
8 import org.springframework.security.core.GrantedAuthority;
9 import org.springframework.security.core.userdetails.UserDetails;
10
11 class JcrAuthorization implements Authorization {
12 private final String name;
13 private final List<String> roles;
14
15 public JcrAuthorization(UserDetails userDetails) {
16 this.name = userDetails.getUsername();
17 List<String> t = new ArrayList<String>();
18 for (GrantedAuthority ga : userDetails.getAuthorities()) {
19 t.add(ga.getAuthority());
20 }
21 roles = Collections.unmodifiableList(t);
22 }
23
24 @Override
25 public String getName() {
26 return name;
27 }
28
29 @Override
30 public boolean hasRole(String name) {
31 return roles.contains(name);
32 }
33
34 @Override
35 public String[] getRoles() {
36 return roles.toArray(new String[roles.size()]);
37 }
38
39 }