cert.getSubjectX500Principal().getName()
BouncyCastle'a bağımlı olmak istemiyorsanız, bir normal ifade kullanarak bunu nasıl yapacağınız aşağıda açıklanmıştır .
Bu normal ifade, her eşleşme için ayırt edici bir adı, veren name
ve val
yakalama gruplarını ayrıştırır .
DN dizeleri virgül içerdiğinde, bunların tırnak içine alınması gerekir - bu normal ifade hem tırnak içine alınmış hem de tırnaksız dizeleri doğru bir şekilde işler ve ayrıca tırnaklı dizelerdeki çıkış karakterli tırnakları işler:
(?:^|,\s?)(?:(?<name>[A-Z]+)=(?<val>"(?:[^"]|"")+"|[^,]+))+
İşte güzel biçimlendirilmiş:
(?:^|,\s?)
(?:
(?<name>[A-Z]+)=
(?<val>"(?:[^"]|"")+"|[^,]+)
)+
İşte iş başında görebilmeniz için bir bağlantı:
https://regex101.com/r/zfZX3f/2
Bir normal ifadenin yalnızca CN'yi almasını istiyorsanız , bu uyarlanmış sürüm bunu yapacaktır:
(?:^|,\s?)(?:CN=(?<val>"(?:[^"]|"")+"|[^,]+))