gpt4 book ai didi

java - 使用 Vaadin 应用程序进行通用访问卡 (CAC) 身份验证

转载 作者:行者123 更新时间:2023-11-30 03:20:05 24 4
gpt4 key购买 nike

我正在创建一个 Vaadin Web 应用程序,要求用户通过登录名和密码进行身份验证,我想知道是否可以添加 CAC 身份验证作为另一种身份验证方式。

总而言之,我的目标是,如果用户已通过 CAC 身份验证,则允许访问该网站;如果用户未通过 CAC 身份验证,则需要标准登录(名称/密码)

通过搜索和谷歌搜索,我发现了 Java PKCS#11 ,但看起来它是一个用于桌面集成的库。

我也看到了thisthis帖子,看起来与我的情况相似,但实际上并非如此。第一个讨论通过配置 Web 服务器来对整个 Web 应用程序进行认证的要求。第二个将 Java PKCS#11 作为桌面解决方案。

同样,我希望拥有的是“并行”登录,如果浏览器向服务器发送CAC证书,则服务器不应该要求标准登录,否则需要。是否可以?另外,如果 CAC 证书发送到服务器,是否有办法检索有关此 CAC 的数据,例如所有者的姓名?

最佳答案

在正确配置的 servlet 容器中,您可以使用它来读取客户端证书(如果存在)

String cipherSuite = (String) req.getAttribute("javax.servlet.request.cipher_suite");

if (cipherSuite != null) {
X509Certificate certChain[] = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate");
if (certChain != null) {
for (int i = 0; i < certChain.length; i++) {
System.out.println ("Client Certificate [" + i + "] = "
+ certChain[i].toString());
}
}
}

关于java - 使用 Vaadin 应用程序进行通用访问卡 (CAC) 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com