class Rails::Auth::X509::SubjectAltNameExtension
Provides convenience methods for subjectAltName extension of X.509 certificates
Constants
- DNS_REGEX
- IP_REGEX
- URI_REGEX
Attributes
dns_names[R]
ips[R]
uris[R]
Public Class Methods
new(certificate)
click to toggle source
# File lib/rails/auth/x509/subject_alt_name_extension.rb, line 14 def initialize(certificate) unless certificate.is_a?(OpenSSL::X509::Certificate) raise TypeError, "expecting OpenSSL::X509::Certificate, got #{certificate.class}" end extension = certificate.extensions.detect { |ext| ext.oid == "subjectAltName" } values = (extension&.value&.split(",") || []).map(&:strip) @dns_names = values.grep(DNS_REGEX) { |v| v.sub(DNS_REGEX, "") }.freeze @ips = values.grep(IP_REGEX) { |v| v.sub(IP_REGEX, "") }.freeze @uris = values.grep(URI_REGEX) { |v| v.sub(URI_REGEX, "") }.freeze end