Извлечение информации из сертификата - PullRequest
2 голосов
/ 01 декабря 2011

Я работаю над проверкой подлинности клиента (в примере приложения JSP) с использованием сертификатов. Я написал код для извлечения информации о клиенте из сертификата клиента. Теперь я хотел использовать серийный номер сертификата для определения конкретного использования из базы данных.

Я извлекаю серийный номер, используя <% = cert.getSerialNumber%> Это дает мне вывод 3. Это целое число, BigInteger или значение массива?

Можно ли как-нибудь объявить это как другую целочисленную переменную, например, int a = (значение серийного номера) ?? Я не много играл с JSP, поэтому я не знаю точно, где можно найти код для этого в моем файле JSP.

Буду очень признателен, если кто-нибудь сможет мне помочь. Заранее спасибо. Я прилагаю свой код, который извлекает серийный номер из установленного сертификата.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.math.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome</title>
</head>
<body>
<center> <font color="red"> Welcome</font> </center>
<%
Object o = request.getAttribute("javax.servlet.request.X509Certificate");
if (o != null) {
X509Certificate certs[] = (X509Certificate[]) o;
X509Certificate cert = certs[0];
%>   
<%= cert.getSerialNumber() %>             
<%   
}   
else {
%>
You are not Authorized!
Your certificate cannot be found!
<%
}
%>
<br><br>
<form method = "post" action = "page2.jsp">
<input type = submit value = "click me">
</form>
</body>
</html>

1 Ответ

0 голосов
/ 01 декабря 2011

Метод getSerialNumber() возвращает объект BigInteger в соответствии с X509Certificate API . Если вы хотите присвоить это значение переменной, вы можете просто сделать:

BigInteger serialNumber = cert.getSerialNumber();

Кстати, это действительно не имеет ничего общего со знаниями JSP, это ядро ​​Java.

...