package eu.europeana.cloud.service.aas.authentication; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import eu.europeana.cloud.common.model.User; /** * Provides core information for every user interacting with the ecloud. * Implementation compatible with spring security. * * (username, password..) * * @author emmanouil.koufakis@theeuropeanlibrary.org */ public class SpringUser extends User implements UserDetails { private List<GrantedAuthority> roles = new ArrayList<GrantedAuthority>(0); public SpringUser(final String username, final String password, final Set<String> userRoles) { super(username, password); this.roles = mapToStringRoles(userRoles); } public SpringUser(final String username, final String password) { super(username, password); } private List<GrantedAuthority> mapToStringRoles(final Set<String> userRoles) { Set<GrantedAuthority> setAuths = new HashSet<GrantedAuthority>(); // Build authorities for (String userRole : userRoles) { setAuths.add(new SimpleGrantedAuthority(userRole)); } List<GrantedAuthority> result = new ArrayList<GrantedAuthority>(setAuths); return result; } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return roles; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } }