use of io.undertow.security.idm.X509CertificateCredential in project undertow by undertow-io.
the class ClientCertAuthenticationMechanism method authenticate.
public AuthenticationMechanismOutcome authenticate(final HttpServerExchange exchange, final SecurityContext securityContext) {
SSLSessionInfo sslSession = exchange.getConnection().getSslSessionInfo();
if (sslSession != null) {
try {
Certificate[] clientCerts = getPeerCertificates(exchange, sslSession, securityContext);
if (clientCerts[0] instanceof X509Certificate) {
Credential credential = new X509CertificateCredential((X509Certificate) clientCerts[0]);
IdentityManager idm = getIdentityManager(securityContext);
Account account = idm.verify(credential);
if (account != null) {
securityContext.authenticationComplete(account, name, false);
return AuthenticationMechanismOutcome.AUTHENTICATED;
}
}
} catch (SSLPeerUnverifiedException e) {
// No action - this mechanism can not attempt authentication without peer certificates so allow it to drop out
// to NOT_ATTEMPTED.
}
}
return AuthenticationMechanismOutcome.NOT_ATTEMPTED;
}
use of io.undertow.security.idm.X509CertificateCredential in project wildfly by wildfly.
the class JAASIdentityManagerImpl method verify.
@Override
public Account verify(Credential credential) {
if (credential instanceof X509CertificateCredential) {
X509CertificateCredential certCredential = (X509CertificateCredential) credential;
X509Certificate certificate = certCredential.getCertificate();
AccountImpl account = getAccount(certificate.getSubjectDN().getName());
return verifyCredential(account, certificate);
}
throw new IllegalArgumentException("Parameter must be a X509CertificateCredential");
}
Aggregations