package org.apache.kerberos.kerb.identity;
import org.apache.kerberos.kerb.spec.KerberosTime;
import org.apache.kerberos.kerb.spec.common.EncryptionKey;
import org.apache.kerberos.kerb.spec.common.EncryptionType;
import org.apache.kerberos.kerb.spec.common.PrincipalName;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class KrbIdentity {
private String principalName;
private PrincipalName principal;
private int keyVersion = 1;
private int kdcFlags = 0;
private boolean disabled = false;
private boolean locked = false;
private KerberosTime expireTime = KerberosTime.NEVER;
private KerberosTime createdTime = KerberosTime.now();
private Map<EncryptionType, EncryptionKey> keys =
new HashMap<EncryptionType, EncryptionKey>();
public KrbIdentity(String principalName) {
this.principalName = principalName;
this.principal = new PrincipalName(principalName);
}
public String getPrincipalName() {
return principalName;
}
public void setPrincipal(PrincipalName principal) {
this.principal = principal;
}
public PrincipalName getPrincipal() {
return principal;
}
public void setKeyVersion(int keyVersion) {
this.keyVersion = keyVersion;
}
public void setKdcFlags(int kdcFlags) {
this.kdcFlags = kdcFlags;
}
public void setDisabled(boolean disabled) {
this.disabled = disabled;
}
public void setLocked(boolean locked) {
this.locked = locked;
}
public void setExpireTime(KerberosTime expireTime) {
this.expireTime = expireTime;
}
public KerberosTime getExpireTime() {
return expireTime;
}
public KerberosTime getCreatedTime() {
return createdTime;
}
public void setCreatedTime(KerberosTime createdTime) {
this.createdTime = createdTime;
}
public boolean isDisabled() {
return disabled;
}
public boolean isLocked() {
return locked;
}
public void addKey(EncryptionKey encKey) {
keys.put(encKey.getKeyType(), encKey);
}
public void addKeys(List<EncryptionKey> encKeys) {
for (EncryptionKey key : encKeys) {
keys.put(key.getKeyType(), key);
}
}
public Map<EncryptionType, EncryptionKey> getKeys() {
return keys;
}
public EncryptionKey getKey(EncryptionType encType) {
return keys.get(encType);
}
public int getKdcFlags() {
return kdcFlags;
}
public int getKeyVersion() {
return keyVersion;
}
}