@Override public final void parseCredentials(final RoutingContext context, final Handler<AsyncResult<JsonObject>> handler) { Objects.requireNonNull(context); Objects.requireNonNull(handler); if (context.request().isSSL()) { try { final Certificate[] path = context.request().sslSession().getPeerCertificates(); final SpanContext currentSpan = TracingHandler.serverSpanContext(context); auth.validateClientCertificate(path, currentSpan).setHandler(handler); } catch (SSLPeerUnverifiedException e) { // client certificate has not been validated LOG.debug("could not retrieve client certificate from request: {}", e.getMessage()); handler.handle(Future.failedFuture(UNAUTHORIZED)); } } else { handler.handle(Future.failedFuture(UNAUTHORIZED)); } }
@Override public Future<JsonObject> parseCredentials(final MqttContext context) { Objects.requireNonNull(context); if (context.deviceEndpoint().isSsl()) { try { final Certificate[] path = context.deviceEndpoint().sslSession().getPeerCertificates(); final SpanContext currentSpan = context.getTracingContext(); return auth.validateClientCertificate(path, currentSpan); } catch (SSLPeerUnverifiedException e) { // client certificate has not been validated log.debug("could not retrieve client certificate from device endpoint: {}", e.getMessage()); return Future.failedFuture(UNAUTHORIZED); } } else { return Future.failedFuture(UNAUTHORIZED); } } }