package org.dcache.auth;
import java.io.Serializable;
import java.security.Principal;
/**
* This principal represents an untrusted UID: the UID that the end-client
* wishes to become. Typically no checks are made that the end-user is
* actually this UID; therefore it is recommended not to make authorisation
* decisions based on this principal.
*
* @see UidPrincipal
*/
public class LoginUidPrincipal implements Principal, Serializable
{
private static final long serialVersionUID = 1181951214740569954L;
private final long _uid;
public LoginUidPrincipal(long uid)
{
if (uid < 0) {
throw new IllegalArgumentException("UID must be non-negative");
}
_uid = uid;
}
public LoginUidPrincipal(String uid)
{
this(Long.parseLong(uid));
}
public long getUid()
{
return _uid;
}
@Override
public String getName()
{
return String.valueOf(_uid);
}
@Override
public int hashCode()
{
return (int) _uid;
}
@Override
public boolean equals(Object obj)
{
if (this == obj) {
return true;
}
if (!(obj instanceof LoginUidPrincipal)) {
return false;
}
LoginUidPrincipal other = (LoginUidPrincipal) obj;
return (other._uid == _uid);
}
@Override
public String toString() {
return getClass().getSimpleName() + '[' + getName() + ']';
}
}