java - 如何使用 Java 从 DoD CAC 中提取用户名

标签 java cac

我正在尝试使用 Java 与 CAC 通信。从开发人员工具包中,我能够找到有关提取唯一 ID (CHUID) 的信息和一些其他信息,例如卡上可用的小程序。但是,我无法从卡中提取用户名 (LastName.FirstName.MiddleName.ID),而且我也无法找到有关 CAC 内容的文档。

我没有使用该卡访问安全网站。我在桌面应用程序中使用它来验证用户身份,因此不会访问存储在卡上的证书。我能够访问存储在卡上的不同小程序,但不知道如何获取用户名。需要此用户名来验证我们系统中的用户。如何从 CAC 获取用户名?

最佳答案

我不确定您使用什么来执行此操作,但如果您使用 PKCS#11 访问它,则需要在卡的 KeyStore 中找到别名,其中包含文本“身份证”。然后,您可以使用 keyStore.getCertificate(alias) 将该证书作为 X509Certificate 获取,并使用 cert.getSubjectX500Principal().getName 获取您要查找的名称()

是的,我也从来没有真正找到任何关于这类事情的文档。

关于java - 如何使用 Java 从 DoD CAC 中提取用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455604/

相关文章:

java - CAC卡/读卡器的PKCS11驱动程序

java.awt.Graphics,如何定义位置?

java - 从用户输入中找到最常见的词

java - @XmlElements 和@XmlJavaTypeAdapter 不能一起工作

https - 从 DoD CAC 卡获取客户证书

.net - DoD CAC 身份验证 - .NET C#、Windows Server 2008 R2、IIS 7.5 的客户端证书问题

java - 如何在按 x 按钮时关闭 JOptionPane 消息框?

Java 共享对象

security - CAC 智能卡重新验证

java - Java WebApp 中的 CAC 身份验证