
The native API supports setting an SSLCertificateVerifier that can be used to provide a custom certificate verifier for incoming SSL certificates. This change provides this functionality to the Java API so that a Java implementation can also be provided. It is expected this will only be used in specialized circumstances and most users will not hit this code path. Bug: webrtc:9541 Change-Id: Id3c75b8f288333b53edc2959bac533e3ec614978 Reviewed-on: https://webrtc-review.googlesource.com/89500 Commit-Queue: Benjamin Wright <benwright@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24057}
66 lines
2.1 KiB
Java
66 lines
2.1 KiB
Java
/*
|
|
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
package org.webrtc;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
/**
|
|
* PeerConnectionDependencies holds all PeerConnection dependencies that are
|
|
* applied per PeerConnection. A dependency is distinct from a configuration
|
|
* as it defines significant executable code that can be provided by a user of
|
|
* the API.
|
|
*/
|
|
public final class PeerConnectionDependencies {
|
|
// Mandatory dependencies.
|
|
private final PeerConnection.Observer observer;
|
|
|
|
// Optional fields.
|
|
private final SSLCertificateVerifier sslCertificateVerifier;
|
|
|
|
public static class Builder {
|
|
private PeerConnection.Observer observer;
|
|
private SSLCertificateVerifier sslCertificateVerifier;
|
|
|
|
private Builder(PeerConnection.Observer observer) {
|
|
this.observer = observer;
|
|
}
|
|
|
|
public Builder setSSLCertificateVerifier(SSLCertificateVerifier sslCertificateVerifier) {
|
|
this.sslCertificateVerifier = sslCertificateVerifier;
|
|
return this;
|
|
}
|
|
|
|
// Observer is a required dependency and so is forced in the construction of the object.
|
|
public PeerConnectionDependencies createPeerConnectionDependencies() {
|
|
return new PeerConnectionDependencies(observer, sslCertificateVerifier);
|
|
}
|
|
}
|
|
|
|
public static Builder builder(PeerConnection.Observer observer) {
|
|
return new Builder(observer);
|
|
}
|
|
|
|
PeerConnection.Observer getObserver() {
|
|
return observer;
|
|
}
|
|
|
|
@Nullable
|
|
SSLCertificateVerifier getSSLCertificateVerifier() {
|
|
return sslCertificateVerifier;
|
|
}
|
|
|
|
private PeerConnectionDependencies(
|
|
PeerConnection.Observer observer, SSLCertificateVerifier sslCertificateVerifier) {
|
|
this.observer = observer;
|
|
this.sslCertificateVerifier = sslCertificateVerifier;
|
|
}
|
|
}
|