Hier erfahren Sie cert.getSubjectX500Principal().getName()
, wie Sie einen regulären Ausdruck verwenden , falls Sie keine Abhängigkeit von BouncyCastle übernehmen möchten.
Diese Regex analysiert für jedes Match einen eindeutigen Namen, eine Angabe name
und val
eine Erfassungsgruppe.
Wenn DN-Zeichenfolgen Kommas enthalten, sollen sie in Anführungszeichen gesetzt werden. Dieser reguläre Ausdruck behandelt sowohl Zeichenfolgen in Anführungszeichen als auch Zeichenfolgen in Anführungszeichen korrekt und behandelt maskierte Anführungszeichen in Zeichenfolgen in Anführungszeichen:
(?:^|,\s?)(?:(?<name>[A-Z]+)=(?<val>"(?:[^"]|"")+"|[^,]+))+
Hier ist schön formatiert:
(?:^|,\s?)
(?:
(?<name>[A-Z]+)=
(?<val>"(?:[^"]|"")+"|[^,]+)
)+
Hier ist ein Link, damit Sie ihn in Aktion sehen können:
https://regex101.com/r/zfZX3f/2
Wenn Sie möchten, dass ein Regex nur den CN erhält , dann wird diese angepasste Version dies tun:
(?:^|,\s?)(?:CN=(?<val>"(?:[^"]|"")+"|[^,]+))