package org.dcache.auth;
import com.google.common.base.CharMatcher;
import java.io.Serializable;
import java.security.Principal;
import static com.google.common.base.Preconditions.checkArgument;
public class OidcSubjectPrincipal implements Principal, Serializable
{
private static final long serialVersionUID = 1L;
private final String _sub;
public OidcSubjectPrincipal(String sub)
{
checkArgument(CharMatcher.ascii().matchesAllOf(sub), "OpenId \"sub\" is not ASCII encoded");
checkArgument(sub.length() <= 255, "OpenId \"sub\" must not exceed 255 ASCII characters");
_sub = sub;
}
@Override
public String getName()
{
return _sub;
}
@Override
public boolean equals(Object obj)
{
if (this == obj) {
return true;
}
if (!(obj instanceof OidcSubjectPrincipal)) {
return false;
}
OidcSubjectPrincipal other = (OidcSubjectPrincipal) obj;
return _sub.equals(other._sub);
}
@Override
public int hashCode()
{
return _sub.hashCode();
}
@Override
public String toString()
{
return "OidcSubjectPrincipal[" + _sub + ']';
}
}