There is an F5 BIG-IP who made HTTPS connections to HTTP, and inserted PEM format client's certificate to HTTP header, and delivered client's certificate to WebLogic server.
I can see the certificate in HTTP header on WebLogic, it is like this:
-----BEGIN CERTIFICATE-----
MIID7zCCA1igAwIBAgIEQHQLqzANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJD TjERMA8GA1UEChMIQ0ZDQSBPQ0EwHhcNMDUwNjA5MDcxMzU2WhcNMDYwNjA5MDc0
...............
...............
-----END CERTIFICATE-----
Now, the problem is:
how to get X509Certificate class on WebLogic?
I use code like this:
import java.security.cert.*;
private String getSerialNumber(HttpServletRequest request)throws Exception
{
try {
String clientcert = request.getHeader("SSLClientCert");
if (clientcert != null)
{
InputStream inStream = new ByteArrayInputStream(clientcert.getBytes());
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
inStream.close();
BigInteger serialNumber = cert.getSerialNumber();
byte[] a = serialNumber.toByteArray();
...........................
....................
.........
It can be compiled successfully, but error occured at line "X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);" when I run it.
Anyone can help me?
Appreciating for any advise!