从证书中提取信息

时间:2011-12-01 03:19:56

标签: java x509certificate biginteger

我正在使用证书进行客户端身份验证(在示例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 :(得分:0)

根据X509Certificate APIgetSerialNumber()方法返回BigInteger个对象。如果要将此值分配给变量,只需执行以下操作:

BigInteger serialNumber = cert.getSerialNumber();

另一方面,这与JSP知识无关,这是核心Java。

相关问题