/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.shiro.authc.x509;
import java.security.cert.X509Certificate;
import java.util.Objects;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.subject.PrincipalCollection;
/**
* Encapsulates the X509 certificate login information from the database
* for a given user. This is used to verify the signature on an incoming
* request.
*
* @author jbuhacoff
*/
public class X509AuthenticationInfo implements AuthenticationInfo {
private PrincipalCollection principals;
private X509Certificate credentials;
public void setPrincipals(PrincipalCollection principals) {
this.principals = principals;
}
@Override
public PrincipalCollection getPrincipals() {
return principals;
}
@Override
public X509Certificate getCredentials() {
return credentials;
}
public void setCredentials(X509Certificate credentials) {
this.credentials = credentials;
}
@Override
public int hashCode() {
return principals == null ? 0 : principals.hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final X509AuthenticationInfo other = (X509AuthenticationInfo) obj;
if (!Objects.equals(this.principals, other.principals)) {
return false;
}
if (!Objects.equals(this.credentials, other.credentials)) {
return false;
}
return true;
}
@Override
public String toString() {
return principals.toString();
}
}