SecurityUser.java 1.7 KB
package com.bsth.entity.sys;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

public class SecurityUser extends SysUser implements UserDetails {

	private static final long serialVersionUID = 1L;

	public SecurityUser(SysUser user) {
		if (null != user) {
			this.setId(user.getId());
			this.setUserName(user.getUserName());
			this.setName(user.getName());
			this.setPassword(user.getPassword());
			this.setAgencies(user.getAgencies());
			this.setRoles(user.getRoles());
			this.setEnabled(user.isEnabled());
		}
	}

	@Override
	public Collection<? extends GrantedAuthority> getAuthorities() {
		Collection<GrantedAuthority> authorities = new ArrayList<>();
		Set<Role> userRoles = this.getRoles();

		if (userRoles != null) {
			for (Role role : userRoles) {
				SimpleGrantedAuthority authority = new SimpleGrantedAuthority(
						role.getCodeName());
				authorities.add(authority);
			}
		}
		return authorities;
	}

	@Override
	public String getPassword() {
		return super.getPassword();
	}

	@Override
	public boolean isAccountNonExpired() {
		return true;
	}

	@Override
	public boolean isAccountNonLocked() {
		return true;
	}

	@Override
	public boolean isCredentialsNonExpired() {
		return true;
	}

	@Override
	public String getUsername() {
		return super.getUserName();
	}

	@Override
	public boolean equals(Object obj) {
		return this.getUserName().equals(((SysUser)obj).getUserName());
	}

	@Override
	public int hashCode() {
		return this.getId() + this.getUserName().hashCode();
	}
}