public class CustomizableCrypto implements Crypto { /** * 构造 X509 式证书的工厂变量 */ private CertificateFactory certFact ; /** * 获取构造 X509 式证书的工厂变量(单例模式) * * @return 证书工厂变量 */ public synchronized CertificateFacto
public class CustomizableCrypto implements Crypto
{
/**
* 构造 X509 格式证书的工厂变量
*/
private CertificateFactory certFact ;
/**
* 获取构造 X509 格式证书的工厂变量(单例模式)
*
* @return 证书工厂变量
*/
public synchronized CertificateFactory getCertificateFactory()
{
if ( certFact == null )
{
try
{
certFact =CertificateFactory. getInstance ( "X.509" );
}
catch (CertificateException e)
{
if ( logger .isErrorEnable())
{
logger .error( "Fail to get CertificateFactory" );
}
}
return certFact ;
}
return certFact ;
}
public PrivateKeygetPrivateKey(String keyName, String passwrod)
{
PEMReader pemIn;
ByteArrayInputStreampemByteIn = new ByteArrayInputStream(getprivatekey(keyName));
pemIn = new PEMReader( new InputStreamReader(pemByteIn));
return ((KeyPair) pemIn.readObject()).getPrivate();
}
public X509Certificate[]getCertificates(String keyName)
{
X509Certificate[] certList= new X509Certificate[1];
// 从 psql 中取出证书并转换为 X509 格式证书
CertificateFactory cf = null ;
X509Certificate cert = null ;
cf = getCertificateFactory();
ByteArrayInputStream bais = new ByteArrayInputStream( getCertificate (keyName));
cert = (X509Certificate)cf.generateCertificate(bais);
certList[0] = cert;
return certList;
}
其他方法空实现 ....
}
查看更多关于axis2实现HTTPs双向认证的几种方式的详细内容...