我正在使用证书进行客户端身份验证(在示例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>
答案 0 :(得分:0)
根据X509Certificate API,getSerialNumber()
方法返回BigInteger
个对象。如果要将此值分配给变量,只需执行以下操作:
BigInteger serialNumber = cert.getSerialNumber();
另一方面,这与JSP知识无关,这是核心Java。