Re: Pass X509Certificate as String?
On 02/08/2013 06:35 PM, ??? wrote:
The methods must be getInstance and getEncoded.
Code snippet:
You're as literal-minded as I am. :-) (BTW, I also found base64
encode/decode methods in javax.xml.bind.DatatypeConverter.)
The cluebat fairy visited me, and I realized that it will be far more
efficient to simply "register" my CA certificate by name before
connecting to the database.
final class JdbcSSLSocketFactory extends SSLSocketFactory
{
private final static Map<String,X509Certificate> caCerts = new
HashMap<>();
public static void registerCA(String caName, X509Certificate caCert)
{
if (caName == null || caCert == null) {
throw new IllegalArgumentException(String.format(
"null value not allowed for %s",
caName == null ? "caName" : "caCert"));
caCerts.put(caName, caCert);
}
public JdbcSSLSocketFactory(String caName)
{
try {
X509Certificate caCert = caCerts.get(caName);
if (caCert == null) {
throw new IllegalStateException(String.format(
"No certificate authority named '%s' has been registered",
caName));
}
...
Thanks!
--
========================================================================
Ian Pilcher arequipeno@gmail.com
Sometimes there's nothing left to do but crash and burn...or die trying.
========================================================================