package cn.dreampie.security;
import cn.dreampie.common.entity.Entity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
/**
* Date: 1/30/13
* Time: 6:30 PM
*/
public class Principal<M extends Entity> implements Serializable {
public static final String PRINCIPAL_DEF_KEY = "_principal";
private String username;
private String password;
private String salt;
private Set<String> credentials = new HashSet<String>();
private M model;
public Principal(String username, String password, Set<String> credentials, M model) {
this(username, password, null, credentials, model);
}
public Principal(String username, String password, String salt, Set<String> credentials, M model) {
this.username = username;
this.password = password;
this.salt = salt;
this.credentials = credentials;
this.model = model;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getSalt() {
return salt;
}
public Set<String> getCredentials() {
return credentials;
}
public boolean hasCredential(String permission) {
return credentials.contains(permission);
}
public M getModel() {
return model;
}
}