package org.carlspring.strongbox.authentication.api.impl.userdetails; import org.carlspring.strongbox.users.domain.AccessModel; import org.carlspring.strongbox.users.domain.User; import java.util.Collection; import com.google.common.base.Objects; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; /** * A wrapper of {@link User} that is used by Spring Security */ public class SpringSecurityUser implements UserDetails { private String username; private String password; private boolean enabled; private String salt; private Collection<? extends GrantedAuthority> authorities; private AccessModel accessModel; private String url; SpringSecurityUser() { } @Override public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } @Override public boolean isAccountNonExpired() { return enabled; } @Override public boolean isAccountNonLocked() { return enabled; } @Override public boolean isCredentialsNonExpired() { return enabled; } @Override public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public String getSalt() { return salt; } public void setSalt(String salt) { this.salt = salt; } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return authorities; } public void setAuthorities(Collection<? extends GrantedAuthority> authorities) { this.authorities = authorities; } public AccessModel getAccessModel() { return accessModel; } public void setAccessModel(AccessModel accessModel) { this.accessModel = accessModel; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; SpringSecurityUser user = (SpringSecurityUser) o; return enabled == user.enabled && Objects.equal(username, user.username) && Objects.equal(password, user.password) && Objects.equal(salt, user.salt) && Objects.equal(authorities, user.authorities) && Objects.equal(accessModel, user.accessModel) && Objects.equal(url, user.url); } @Override public int hashCode() { return Objects.hashCode(username, password, enabled, salt, authorities, accessModel, url); } @Override public String toString() { final StringBuilder sb = new StringBuilder("SpringSecurityUser{"); sb.append("username='") .append(username) .append('\''); sb.append(", password='") .append(password) .append('\''); sb.append(", enabled=") .append(enabled); sb.append(", salt='") .append(salt) .append('\''); if (authorities != null) { sb.append(", authorities (count) = ") .append(authorities.size()); } sb.append(", accessModel=") .append(accessModel); sb.append(", url='") .append(url) .append('\''); sb.append('}'); return sb.toString(); } }