X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.mvc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fcore%2FArgeoUserDetails.java;fp=security%2Fruntime%2Forg.argeo.security.mvc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fcore%2FArgeoUserDetails.java;h=4a6882af432a666acb470b7c9aa3a5c9c816fadb;hb=d295c1877a09dfd7bd0b80eaf94596125bc706c9;hp=0000000000000000000000000000000000000000;hpb=b79a562744f255ff239fe7800c9dabbb64e8f3c8;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/core/ArgeoUserDetails.java b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/core/ArgeoUserDetails.java new file mode 100644 index 000000000..4a6882af4 --- /dev/null +++ b/security/runtime/org.argeo.security.mvc/src/main/java/org/argeo/security/core/ArgeoUserDetails.java @@ -0,0 +1,39 @@ +package org.argeo.security.core; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.argeo.security.ArgeoUser; +import org.argeo.security.UserNature; +import org.springframework.security.GrantedAuthority; +import org.springframework.security.userdetails.User; + +public class ArgeoUserDetails extends User implements ArgeoUser { + private static final long serialVersionUID = 1L; + + private final List userInfos; + private final List roles; + + public ArgeoUserDetails(String username, List userInfos, + String password, GrantedAuthority[] authorities) + throws IllegalArgumentException { + super(username, password, true, true, true, true, authorities); + this.userInfos = Collections.unmodifiableList(userInfos); + + // Roles + List roles = new ArrayList(); + for (GrantedAuthority authority : getAuthorities()) { + roles.add(authority.getAuthority()); + } + this.roles = Collections.unmodifiableList(roles); + } + + public List getUserNatures() { + return userInfos; + } + + public List getRoles() { + return roles; + } +}