gpt4 book ai didi

java - 无法将 X.509 CN 与 Java 正则表达式匹配

转载 作者:行者123 更新时间:2023-12-01 17:29:43 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式来匹配 X.509 证书中的 CN。

整个字符串看起来像这样:

CN=JASON、OU=MYOU、O=MYORG

这是不起作用的代码:

    Object certChain = request
.getAttribute("javax.servlet.request.X509Certificate");
String name = "";
if (certChain != null) {
X509Certificate certs[] = (X509Certificate[]) certChain;
X509Certificate cert = certs[0];
name = cert.getSubjectDN().getName();
}

String strPattern = "CN=(.*?),";
Pattern pattern = Pattern.compile(strPattern);
Matcher matcher = pattern.matcher(name);
String cname = "";
if (matcher.matches()) {
cname = matcher.group(1);
}

Matcher.matches() 返回 false,但我没有发现该模式有问题。有人可以帮忙吗?

杰森

最佳答案

仅当模式与输入的全部匹配时,Matcher.matches才返回true。您有两条前进的道路:

  • 展开模式以匹配所有输入:"CN=(.*?),.*"
  • 使用 Matcher.find 查找输入中模式的第一次出现。后续调用 find 将匹配输入中的连续出现项。

关于java - 无法将 X.509 CN 与 Java 正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288591/

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