keycloak-service
静的関数 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.UserIdentityExtractorBuilder クラス
org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.UserIdentityExtractorBuilder 連携図
Collaboration graph

静的関数

static UserIdentityExtractor fromConfig (X509AuthenticatorConfigModel config)
 

静的非公開変数類

static final Function< X509Certificate[], X500Name > subject
 
static final Function< X509Certificate[], X500Name > issuer
 

詳解

関数詳解

◆ fromConfig()

static UserIdentityExtractor org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.UserIdentityExtractorBuilder.fromConfig ( X509AuthenticatorConfigModel  config)
inlinestaticpackage
125  {
126 
127  X509AuthenticatorConfigModel.MappingSourceType userIdentitySource = config.getMappingSourceType();
128  String pattern = config.getRegularExpression();
129 
130  UserIdentityExtractor extractor = null;
131  switch(userIdentitySource) {
132 
133  case SUBJECTDN:
134  extractor = UserIdentityExtractor.getPatternIdentityExtractor(pattern, certs -> certs[0].getSubjectDN().getName());
135  break;
136  case ISSUERDN:
137  extractor = UserIdentityExtractor.getPatternIdentityExtractor(pattern, certs -> certs[0].getIssuerDN().getName());
138  break;
139  case SERIALNUMBER:
140  extractor = UserIdentityExtractor.getPatternIdentityExtractor(DEFAULT_MATCH_ALL_EXPRESSION, certs -> certs[0].getSerialNumber().toString());
141  break;
142  case SUBJECTDN_CN:
143  extractor = UserIdentityExtractor.getX500NameExtractor(BCStyle.CN, subject);
144  break;
145  case SUBJECTDN_EMAIL:
146  extractor = UserIdentityExtractor
147  .either(UserIdentityExtractor.getX500NameExtractor(BCStyle.EmailAddress, subject))
148  .or(UserIdentityExtractor.getX500NameExtractor(BCStyle.E, subject));
149  break;
150  case SUBJECTALTNAME_EMAIL:
151  extractor = UserIdentityExtractor.getSubjectAltNameExtractor(1);
152  break;
153  case ISSUERDN_CN:
154  extractor = UserIdentityExtractor.getX500NameExtractor(BCStyle.CN, issuer);
155  break;
156  case ISSUERDN_EMAIL:
157  extractor = UserIdentityExtractor
158  .either(UserIdentityExtractor.getX500NameExtractor(BCStyle.EmailAddress, issuer))
159  .or(UserIdentityExtractor.getX500NameExtractor(BCStyle.E, issuer));
160  break;
161  default:
162  logger.warnf("[UserIdentityExtractorBuilder:fromConfig] Unknown or unsupported user identity source: \"%s\"", userIdentitySource.getName());
163  break;
164  }
165  return extractor;
166  }
static final String DEFAULT_MATCH_ALL_EXPRESSION
Definition: AbstractX509ClientCertificateAuthenticator.java:72
static final Function< X509Certificate[], X500Name > subject
Definition: AbstractX509ClientCertificateAuthenticator.java:107
static final Function< X509Certificate[], X500Name > issuer
Definition: AbstractX509ClientCertificateAuthenticator.java:116
static ServicesLogger logger
Definition: AbstractX509ClientCertificateAuthenticator.java:49

メンバ詳解

◆ issuer

final Function<X509Certificate[],X500Name> org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.UserIdentityExtractorBuilder.issuer
staticprivate
初期値:
= certs -> {
try {
return new JcaX509CertificateHolder(certs[0]).getIssuer();
} catch (CertificateEncodingException e) {
logger.warn("Unable to get certificate Issuer", e);
}
return null;
}

◆ subject

final Function<X509Certificate[],X500Name> org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticator.UserIdentityExtractorBuilder.subject
staticprivate
初期値:
= certs -> {
try {
return new JcaX509CertificateHolder(certs[0]).getSubject();
} catch (CertificateEncodingException e) {
logger.warn("Unable to get certificate Subject", e);
}
return null;
}

このクラス詳解は次のファイルから抽出されました: