/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cassandra.auth;
import java.io.Serializable;
import java.security.Principal;
This class implements the Principal
interface
and represents a user.
Principals such as this CassPrincipal
may be associated with a particular Subject
to augment that Subject
with an additional
identity. Refer to the Subject
class for more information
on how to achieve this. Authorization decisions can then be based upon
the Principals associated with a Subject
.
See Also: - Principal
- Subject
/**
* <p> This class implements the <code>Principal</code> interface
* and represents a user.
*
* <p> Principals such as this <code>CassPrincipal</code>
* may be associated with a particular <code>Subject</code>
* to augment that <code>Subject</code> with an additional
* identity. Refer to the <code>Subject</code> class for more information
* on how to achieve this. Authorization decisions can then be based upon
* the Principals associated with a <code>Subject</code>.
*
* @see java.security.Principal
* @see javax.security.auth.Subject
*/
public class CassandraPrincipal implements Principal, Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
private final String name;
Create a CassPrincipal with a username.
Params: - name – the username for this user.
Throws: - NullPointerException – if the
name
is null
.
/**
* Create a CassPrincipal with a username.
*
* <p>
*
* @param name the username for this user.
*
* @exception NullPointerException if the <code>name</code>
* is <code>null</code>.
*/
public CassandraPrincipal(String name)
{
if (name == null)
throw new NullPointerException("illegal null input");
this.name = name;
}
Return the username for this CassPrincipal
.
Returns: the username for this CassPrincipal
/**
* Return the username for this <code>CassPrincipal</code>.
*
* <p>
*
* @return the username for this <code>CassPrincipal</code>
*/
@Override
public String getName()
{
return name;
}
Return a string representation of this CassPrincipal
.
Returns: a string representation of this CassPrincipal
.
/**
* Return a string representation of this <code>CassPrincipal</code>.
*
* <p>
*
* @return a string representation of this <code>CassPrincipal</code>.
*/
@Override
public String toString()
{
return ("CassandraPrincipal: " + name);
}
Compares the specified Object with this CassPrincipal
for equality. Returns true if the given object is also a
CassPrincipal
and the two CassPrincipals
have the same username.
Params: - o – Object to be compared for equality with this
CassPrincipal
.
Returns: true if the specified Object is equal equal to this
CassPrincipal
.
/**
* Compares the specified Object with this <code>CassPrincipal</code>
* for equality. Returns true if the given object is also a
* <code>CassPrincipal</code> and the two CassPrincipals
* have the same username.
*
* <p>
*
* @param o Object to be compared for equality with this
* <code>CassPrincipal</code>.
*
* @return true if the specified Object is equal equal to this
* <code>CassPrincipal</code>.
*/
@Override
public boolean equals(Object o)
{
if (o == null)
return false;
if (this == o)
return true;
if (!(o instanceof CassandraPrincipal))
return false;
CassandraPrincipal that = (CassandraPrincipal) o;
if (this.getName().equals(that.getName()))
return true;
return false;
}
Return a hash code for this CassPrincipal
.
Returns: a hash code for this CassPrincipal
.
/**
* Return a hash code for this <code>CassPrincipal</code>.
*
* <p>
*
* @return a hash code for this <code>CassPrincipal</code>.
*/
@Override
public int hashCode()
{
return name.hashCode();
}
}