You can use this example to write your own implementation of the ICredential interface. The user password credential stores a user ID and password.
// Module : UserPasswordCrediential.cs
using System;
using IBM.WebSphere.Caching.Security;
namespace com.ibm.websphere.objectgrid.security.plugins.builtins
{
public class UserPasswordCredential : ICredential
{
private String ivUserName;
private String ivPassword;
/// <summary>
///Creates a UserPasswordCredential with the specified user name and
/// password.
///
/// ArgumentException if userName or password is null
/// </summary>
/// <param name="userName">the user name for this credential</param>
/// <param name="password">the password for this credential</param>
public UserPasswordCredential(String userName, String password)
{
if (userName == null || password == null) {
throw new ArgumentException("User name and password cannot be null.");
}
this.ivUserName = userName;
this.ivPassword = password;
}
/// <summary>Gets the user name for this credential.</summary>
/// <returns>the user name argument that was passed to the constructor
///or the setUserName(String) method of this class </returns>
public String GetUserName() {
return ivUserName;
}
/// <summary>Sets the user name for this credential.
///ArgumentException if userName is null
/// </summary>
/// <param name="userName">userName the user name to set.</param>
public void SetUserName(String userName) {
if (userName == null) {
throw new ArgumentException("User name cannot be null.");
}
this.ivUserName = userName;
}
/// <summary>Gets the password for this credential.
/// </summary>
/// <returns>the password argument that was passed to the constructor or the setPassword(String) method of this class</returns>
public String GetPassword() {
return ivPassword;
}
/// <summary>Sets the password for this credential.
///ArgumentException if password is null
/// </summary>
/// <param name="password">the password to set.</param>
public void SetPassword(String password) {
if (password == null)
{
throw new ArgumentException("Password cannot be null.");
}
this.ivPassword = password;
}
/// <summary>Checks two UserPasswordCredential objects for equality.
///<p>
/// Two UserPasswordCredential objects are equal if and only if their user names
/// and passwords are equal.
/// </summary>
/// <param name="o">the object we are testing for equality with this object.</param>
/// <returns>true if both UserPasswordCredential objects are equivalent.</returns>
public bool Equals(ICredential credential)
{
if (this == credential) {
return true;
}
if (credential is UserPasswordCredential) {
UserPasswordCredential other = (UserPasswordCredential)credential;
return other.ivPassword.Equals(ivPassword) && other.ivUserName.Equals(ivUserName);
}
return false;
}
/// <summary>Returns the hashcode of the UserPasswordCredential object.
/// </summary>
/// <returns>return the hash code of this object</returns>
public override int GetHashCode() {
int ret = ivUserName.GetHashCode() + ivPassword.GetHashCode();
return ret;
}
/// <summary>this.Object as a string
/// </summary>
/// <returns>return the string presentation of the UserPasswordCredential object.</returns>
public override String ToString() {
return typeof(UserPasswordCredential).FullName + "[" + ivUserName + ",xxxxxx]";
}
}
}