]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/core/ArgeoUserDetails.java
4a6882af432a666acb470b7c9aa3a5c9c816fadb
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.mvc / src / main / java / org / argeo / security / core / ArgeoUserDetails.java
1 package org.argeo.security.core;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import org.argeo.security.ArgeoUser;
8 import org.argeo.security.UserNature;
9 import org.springframework.security.GrantedAuthority;
10 import org.springframework.security.userdetails.User;
11
12 public class ArgeoUserDetails extends User implements ArgeoUser {
13 private static final long serialVersionUID = 1L;
14
15 private final List<UserNature> userInfos;
16 private final List<String> roles;
17
18 public ArgeoUserDetails(String username, List<UserNature> userInfos,
19 String password, GrantedAuthority[] authorities)
20 throws IllegalArgumentException {
21 super(username, password, true, true, true, true, authorities);
22 this.userInfos = Collections.unmodifiableList(userInfos);
23
24 // Roles
25 List<String> roles = new ArrayList<String>();
26 for (GrantedAuthority authority : getAuthorities()) {
27 roles.add(authority.getAuthority());
28 }
29 this.roles = Collections.unmodifiableList(roles);
30 }
31
32 public List<UserNature> getUserNatures() {
33 return userInfos;
34 }
35
36 public List<String> getRoles() {
37 return roles;
38 }
39 }