mirror of https://github.com/grpc/grpc-java.git
all: fix lint
This commit is contained in:
parent
eb6c3415d2
commit
09367030ae
|
|
@ -38,13 +38,13 @@ class LogHelper {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Abort the program after logging the mesage if the given condition is not
|
// Abort the program after logging the message if the given condition is not
|
||||||
// true. Otherwise, do nothing.
|
// true. Otherwise, do nothing.
|
||||||
#define GRPC_CODEGEN_CHECK(x) !(x) && LogHelper(&std::cerr).get_os() \
|
#define GRPC_CODEGEN_CHECK(x) !(x) && LogHelper(&std::cerr).get_os() \
|
||||||
<< "CHECK FAILED: " << __FILE__ << ":" \
|
<< "CHECK FAILED: " << __FILE__ << ":" \
|
||||||
<< __LINE__ << ": "
|
<< __LINE__ << ": "
|
||||||
|
|
||||||
// Abort the program after logging the mesage.
|
// Abort the program after logging the message.
|
||||||
#define GRPC_CODEGEN_FAIL GRPC_CODEGEN_CHECK(false)
|
#define GRPC_CODEGEN_FAIL GRPC_CODEGEN_CHECK(false)
|
||||||
|
|
||||||
namespace java_grpc_generator {
|
namespace java_grpc_generator {
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,6 @@ import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.JUnit4;
|
import org.junit.runners.JUnit4;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
|
|
@ -103,7 +102,6 @@ public class ServiceConfigErrorHandlingTest {
|
||||||
|
|
||||||
private final InternalChannelz channelz = new InternalChannelz();
|
private final InternalChannelz channelz = new InternalChannelz();
|
||||||
|
|
||||||
@Rule public final ExpectedException thrown = ExpectedException.none();
|
|
||||||
@Rule public final MockitoRule mocks = MockitoJUnit.rule();
|
@Rule public final MockitoRule mocks = MockitoJUnit.rule();
|
||||||
|
|
||||||
private ManagedChannelImpl channel;
|
private ManagedChannelImpl channel;
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ import io.grpc.netty.NettyServerBuilder;
|
||||||
import io.grpc.stub.StreamObserver;
|
import io.grpc.stub.StreamObserver;
|
||||||
import io.netty.handler.ssl.ClientAuth;
|
import io.netty.handler.ssl.ClientAuth;
|
||||||
import io.netty.handler.ssl.SslContextBuilder;
|
import io.netty.handler.ssl.SslContextBuilder;
|
||||||
import io.netty.handler.ssl.SslProvider;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,14 @@
|
||||||
package io.grpc.netty;
|
package io.grpc.netty;
|
||||||
|
|
||||||
import io.grpc.Attributes;
|
import io.grpc.Attributes;
|
||||||
|
import io.grpc.Internal;
|
||||||
import io.grpc.InternalChannelz.Security;
|
import io.grpc.InternalChannelz.Security;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal accessor for {@link ProtocolNegotiationEvent}.
|
* Internal accessor for {@link ProtocolNegotiationEvent}.
|
||||||
*/
|
*/
|
||||||
|
@Internal
|
||||||
public final class InternalProtocolNegotiationEvent {
|
public final class InternalProtocolNegotiationEvent {
|
||||||
private InternalProtocolNegotiationEvent() {}
|
private InternalProtocolNegotiationEvent() {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1292,8 +1292,8 @@ final class EnvoyProtoData {
|
||||||
|
|
||||||
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats toEnvoyProtoClusterStats() {
|
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats toEnvoyProtoClusterStats() {
|
||||||
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats.Builder builder =
|
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats.Builder builder =
|
||||||
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats.newBuilder();
|
io.envoyproxy.envoy.config.endpoint.v3.ClusterStats.newBuilder()
|
||||||
builder.setClusterName(clusterName);
|
.setClusterName(clusterName);
|
||||||
if (clusterServiceName != null) {
|
if (clusterServiceName != null) {
|
||||||
builder.setClusterServiceName(clusterServiceName);
|
builder.setClusterServiceName(clusterServiceName);
|
||||||
}
|
}
|
||||||
|
|
@ -1303,15 +1303,16 @@ final class EnvoyProtoData {
|
||||||
for (DroppedRequests droppedRequests : droppedRequestsList) {
|
for (DroppedRequests droppedRequests : droppedRequestsList) {
|
||||||
builder.addDroppedRequests(droppedRequests.toEnvoyProtoDroppedRequests());
|
builder.addDroppedRequests(droppedRequests.toEnvoyProtoDroppedRequests());
|
||||||
}
|
}
|
||||||
builder.setTotalDroppedRequests(totalDroppedRequests);
|
return builder
|
||||||
builder.setLoadReportInterval(Durations.fromNanos(loadReportIntervalNanos));
|
.setTotalDroppedRequests(totalDroppedRequests)
|
||||||
return builder.build();
|
.setLoadReportInterval(Durations.fromNanos(loadReportIntervalNanos))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats toEnvoyProtoClusterStatsV2() {
|
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats toEnvoyProtoClusterStatsV2() {
|
||||||
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats.Builder builder =
|
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats.Builder builder =
|
||||||
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats.newBuilder();
|
io.envoyproxy.envoy.api.v2.endpoint.ClusterStats.newBuilder()
|
||||||
builder.setClusterName(clusterName);
|
.setClusterName(clusterName);
|
||||||
for (UpstreamLocalityStats upstreamLocalityStats : upstreamLocalityStatsList) {
|
for (UpstreamLocalityStats upstreamLocalityStats : upstreamLocalityStatsList) {
|
||||||
builder.addUpstreamLocalityStats(
|
builder.addUpstreamLocalityStats(
|
||||||
upstreamLocalityStats.toEnvoyProtoUpstreamLocalityStatsV2());
|
upstreamLocalityStats.toEnvoyProtoUpstreamLocalityStatsV2());
|
||||||
|
|
@ -1319,9 +1320,10 @@ final class EnvoyProtoData {
|
||||||
for (DroppedRequests droppedRequests : droppedRequestsList) {
|
for (DroppedRequests droppedRequests : droppedRequestsList) {
|
||||||
builder.addDroppedRequests(droppedRequests.toEnvoyProtoDroppedRequestsV2());
|
builder.addDroppedRequests(droppedRequests.toEnvoyProtoDroppedRequestsV2());
|
||||||
}
|
}
|
||||||
builder.setTotalDroppedRequests(totalDroppedRequests);
|
return builder
|
||||||
builder.setLoadReportInterval(Durations.fromNanos(loadReportIntervalNanos));
|
.setTotalDroppedRequests(totalDroppedRequests)
|
||||||
return builder.build();
|
.setLoadReportInterval(Durations.fromNanos(loadReportIntervalNanos))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|
@ -1534,8 +1536,7 @@ final class EnvoyProtoData {
|
||||||
private io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats
|
private io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats
|
||||||
toEnvoyProtoUpstreamLocalityStats() {
|
toEnvoyProtoUpstreamLocalityStats() {
|
||||||
io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats.Builder builder
|
io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats.Builder builder
|
||||||
= io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats.newBuilder();
|
= io.envoyproxy.envoy.config.endpoint.v3.UpstreamLocalityStats.newBuilder()
|
||||||
builder
|
|
||||||
.setLocality(locality.toEnvoyProtoLocality())
|
.setLocality(locality.toEnvoyProtoLocality())
|
||||||
.setTotalSuccessfulRequests(totalSuccessfulRequests)
|
.setTotalSuccessfulRequests(totalSuccessfulRequests)
|
||||||
.setTotalErrorRequests(totalErrorRequests)
|
.setTotalErrorRequests(totalErrorRequests)
|
||||||
|
|
@ -1550,8 +1551,7 @@ final class EnvoyProtoData {
|
||||||
private io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats
|
private io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats
|
||||||
toEnvoyProtoUpstreamLocalityStatsV2() {
|
toEnvoyProtoUpstreamLocalityStatsV2() {
|
||||||
io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats.Builder builder
|
io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats.Builder builder
|
||||||
= io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats.newBuilder();
|
= io.envoyproxy.envoy.api.v2.endpoint.UpstreamLocalityStats.newBuilder()
|
||||||
builder
|
|
||||||
.setLocality(locality.toEnvoyProtoLocalityV2())
|
.setLocality(locality.toEnvoyProtoLocalityV2())
|
||||||
.setTotalSuccessfulRequests(totalSuccessfulRequests)
|
.setTotalSuccessfulRequests(totalSuccessfulRequests)
|
||||||
.setTotalErrorRequests(totalErrorRequests)
|
.setTotalErrorRequests(totalErrorRequests)
|
||||||
|
|
|
||||||
|
|
@ -416,8 +416,8 @@ final class LoadReportClient {
|
||||||
|
|
||||||
io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest toEnvoyProtoV2() {
|
io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest toEnvoyProtoV2() {
|
||||||
io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest.Builder builder
|
io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest.Builder builder
|
||||||
= io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest.newBuilder();
|
= io.envoyproxy.envoy.service.load_stats.v2.LoadStatsRequest.newBuilder()
|
||||||
builder.setNode(node.toEnvoyProtoNodeV2());
|
.setNode(node.toEnvoyProtoNodeV2());
|
||||||
if (clusterStatsList != null) {
|
if (clusterStatsList != null) {
|
||||||
for (ClusterStats stats : clusterStatsList) {
|
for (ClusterStats stats : clusterStatsList) {
|
||||||
builder.addClusterStats(stats.toEnvoyProtoClusterStatsV2());
|
builder.addClusterStats(stats.toEnvoyProtoClusterStatsV2());
|
||||||
|
|
@ -427,8 +427,8 @@ final class LoadReportClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadStatsRequest toEnvoyProtoV3() {
|
LoadStatsRequest toEnvoyProtoV3() {
|
||||||
LoadStatsRequest.Builder builder = LoadStatsRequest.newBuilder();
|
LoadStatsRequest.Builder builder = LoadStatsRequest.newBuilder()
|
||||||
builder.setNode(node.toEnvoyProtoNode());
|
.setNode(node.toEnvoyProtoNode());
|
||||||
if (clusterStatsList != null) {
|
if (clusterStatsList != null) {
|
||||||
for (ClusterStats stats : clusterStatsList) {
|
for (ClusterStats stats : clusterStatsList) {
|
||||||
builder.addClusterStats(stats.toEnvoyProtoClusterStats());
|
builder.addClusterStats(stats.toEnvoyProtoClusterStats());
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
package io.grpc.xds;
|
package io.grpc.xds;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
import static java.util.concurrent.TimeUnit.NANOSECONDS;
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Stopwatch;
|
import com.google.common.base.Stopwatch;
|
||||||
|
|
@ -33,7 +34,6 @@ import io.grpc.xds.LoadStatsManager.LoadStatsStoreFactory;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ConcurrentMap;
|
import java.util.concurrent.ConcurrentMap;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.concurrent.NotThreadSafe;
|
import javax.annotation.concurrent.NotThreadSafe;
|
||||||
|
|
@ -113,7 +113,7 @@ final class LoadStatsStoreImpl implements LoadStatsStore {
|
||||||
statsBuilder.addDroppedRequests(new DroppedRequests(entry.getKey(),drops));
|
statsBuilder.addDroppedRequests(new DroppedRequests(entry.getKey(),drops));
|
||||||
}
|
}
|
||||||
statsBuilder.setTotalDroppedRequests(totalDrops);
|
statsBuilder.setTotalDroppedRequests(totalDrops);
|
||||||
statsBuilder.setLoadReportIntervalNanos(stopwatch.elapsed(TimeUnit.NANOSECONDS));
|
statsBuilder.setLoadReportIntervalNanos(stopwatch.elapsed(NANOSECONDS));
|
||||||
stopwatch.reset().start();
|
stopwatch.reset().start();
|
||||||
return statsBuilder.build();
|
return statsBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,6 @@ final class PriorityLoadBalancer extends LoadBalancer {
|
||||||
policy = newPolicy;
|
policy = newPolicy;
|
||||||
lb.switchTo(lbProvider);
|
lb.switchTo(lbProvider);
|
||||||
}
|
}
|
||||||
// TODO(zdapeng): Implement address filtering.
|
|
||||||
lb.handleResolvedAddresses(
|
lb.handleResolvedAddresses(
|
||||||
addresses
|
addresses
|
||||||
.toBuilder()
|
.toBuilder()
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ abstract class CertProviderSslContextProvider extends DynamicSslContextProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CertificateProviderInfo getCertProviderConfig(
|
private static CertificateProviderInfo getCertProviderConfig(
|
||||||
Map<String, CertificateProviderInfo> certProviders, String pluginInstanceName) {
|
Map<String, CertificateProviderInfo> certProviders, String pluginInstanceName) {
|
||||||
return certProviders.get(pluginInstanceName);
|
return certProviders.get(pluginInstanceName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ public class AuthorizationDecision {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for (String policyName : this.policyNames) {
|
for (String policyName : this.policyNames) {
|
||||||
authzStr.append(policyName + "; \n");
|
authzStr.append(policyName).append("; \n");
|
||||||
}
|
}
|
||||||
return authzStr.toString();
|
return authzStr.toString();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,7 @@ public class AuthorizationEngine {
|
||||||
* @param allowPolicy input Envoy RBAC policy with ALLOW action.
|
* @param allowPolicy input Envoy RBAC policy with ALLOW action.
|
||||||
* @throws IllegalArgumentException if the user inputs an invalid RBAC list.
|
* @throws IllegalArgumentException if the user inputs an invalid RBAC list.
|
||||||
*/
|
*/
|
||||||
public AuthorizationEngine(RBAC denyPolicy, RBAC allowPolicy) throws IllegalArgumentException {
|
public AuthorizationEngine(RBAC denyPolicy, RBAC allowPolicy) {
|
||||||
checkArgument(
|
checkArgument(
|
||||||
denyPolicy.getAction() == Action.DENY && allowPolicy.getAction() == Action.ALLOW,
|
denyPolicy.getAction() == Action.DENY && allowPolicy.getAction() == Action.ALLOW,
|
||||||
"Invalid RBAC list, "
|
"Invalid RBAC list, "
|
||||||
|
|
@ -140,7 +140,7 @@ public class AuthorizationEngine {
|
||||||
if (authzDecision != null) {
|
if (authzDecision != null) {
|
||||||
return authzDecision;
|
return authzDecision;
|
||||||
}
|
}
|
||||||
if (unknownPolicyNames.size() > 0) {
|
if (!unknownPolicyNames.isEmpty()) {
|
||||||
return new AuthorizationDecision(
|
return new AuthorizationDecision(
|
||||||
AuthorizationDecision.Output.UNKNOWN, unknownPolicyNames);
|
AuthorizationDecision.Output.UNKNOWN, unknownPolicyNames);
|
||||||
}
|
}
|
||||||
|
|
@ -154,7 +154,7 @@ public class AuthorizationEngine {
|
||||||
if (authzDecision != null) {
|
if (authzDecision != null) {
|
||||||
return authzDecision;
|
return authzDecision;
|
||||||
}
|
}
|
||||||
if (unknownPolicyNames.size() > 0) {
|
if (!unknownPolicyNames.isEmpty()) {
|
||||||
return new AuthorizationDecision(
|
return new AuthorizationDecision(
|
||||||
AuthorizationDecision.Output.UNKNOWN, unknownPolicyNames);
|
AuthorizationDecision.Output.UNKNOWN, unknownPolicyNames);
|
||||||
}
|
}
|
||||||
|
|
@ -198,7 +198,7 @@ public class AuthorizationEngine {
|
||||||
try {
|
try {
|
||||||
Object result = interpretable.eval(activation);
|
Object result = interpretable.eval(activation);
|
||||||
if (result instanceof Boolean) {
|
if (result instanceof Boolean) {
|
||||||
return Boolean.valueOf(result.toString());
|
return Boolean.parseBoolean(result.toString());
|
||||||
}
|
}
|
||||||
// Throw an InterpreterException if there are missing Envoy Attributes.
|
// Throw an InterpreterException if there are missing Envoy Attributes.
|
||||||
if (result instanceof IncompleteData) {
|
if (result instanceof IncompleteData) {
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ import io.grpc.ServerCall;
|
||||||
|
|
||||||
/** The EvaluateArgs class holds evaluate arguments used in CEL-based Authorization Engine. */
|
/** The EvaluateArgs class holds evaluate arguments used in CEL-based Authorization Engine. */
|
||||||
public class EvaluateArgs {
|
public class EvaluateArgs {
|
||||||
private Metadata headers;
|
private final Metadata headers;
|
||||||
private ServerCall<?, ?> call;
|
private final ServerCall<?, ?> call;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new EvaluateArgs using the input {@code headers} for resolving headers
|
* Creates a new EvaluateArgs using the input {@code headers} for resolving headers
|
||||||
|
|
|
||||||
|
|
@ -75,8 +75,8 @@ public abstract class DynamicSslContextProvider extends SslContextProvider {
|
||||||
alpnList);
|
alpnList);
|
||||||
sslContextBuilder.applicationProtocolConfig(apn);
|
sslContextBuilder.applicationProtocolConfig(apn);
|
||||||
}
|
}
|
||||||
List<Callback> pendingCallbacksCopy = null;
|
List<Callback> pendingCallbacksCopy;
|
||||||
SslContext sslContextCopy = null;
|
SslContext sslContextCopy;
|
||||||
synchronized (pendingCallbacks) {
|
synchronized (pendingCallbacks) {
|
||||||
sslContext = sslContextBuilder.build();
|
sslContext = sslContextBuilder.build();
|
||||||
sslContextCopy = sslContext;
|
sslContextCopy = sslContext;
|
||||||
|
|
|
||||||
|
|
@ -749,7 +749,7 @@ public class XdsClientImplTest {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// path match with cluster route
|
// path match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ null,/* pathExactMatch= */ "/service1/method1"),
|
/* pathPrefixMatch= */ null, /* pathExactMatch= */ "/service1/method1"),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
||||||
assertThat(routes.get(1))
|
assertThat(routes.get(1))
|
||||||
|
|
@ -757,7 +757,7 @@ public class XdsClientImplTest {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// path match with weighted cluster route
|
// path match with weighted cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ null,/* pathExactMatch= */ "/service2/method2"),
|
/* pathPrefixMatch= */ null, /* pathExactMatch= */ "/service2/method2"),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L),
|
TimeUnit.SECONDS.toNanos(15L),
|
||||||
null,
|
null,
|
||||||
|
|
@ -769,7 +769,7 @@ public class XdsClientImplTest {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// prefix match with cluster route
|
// prefix match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ "/service1/",/* pathExactMatch= */ null),
|
/* pathPrefixMatch= */ "/service1/", /* pathExactMatch= */ null),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
||||||
assertThat(routes.get(3))
|
assertThat(routes.get(3))
|
||||||
|
|
@ -777,7 +777,7 @@ public class XdsClientImplTest {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// default match with cluster route
|
// default match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ "",/* pathExactMatch= */ null),
|
/* pathPrefixMatch= */ "", /* pathExactMatch= */ null),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cluster.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cluster.googleapis.com", null)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -751,7 +751,7 @@ public class XdsClientImplTestV2 {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// path match with cluster route
|
// path match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ null,/* pathExactMatch= */ "/service1/method1"),
|
/* pathPrefixMatch= */ null, /* pathExactMatch= */ "/service1/method1"),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
||||||
assertThat(routes.get(1))
|
assertThat(routes.get(1))
|
||||||
|
|
@ -759,7 +759,7 @@ public class XdsClientImplTestV2 {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// path match with weighted cluster route
|
// path match with weighted cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ null,/* pathExactMatch= */ "/service2/method2"),
|
/* pathPrefixMatch= */ null, /* pathExactMatch= */ "/service2/method2"),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L),
|
TimeUnit.SECONDS.toNanos(15L),
|
||||||
null,
|
null,
|
||||||
|
|
@ -771,7 +771,7 @@ public class XdsClientImplTestV2 {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// prefix match with cluster route
|
// prefix match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ "/service1/",/* pathExactMatch= */ null),
|
/* pathPrefixMatch= */ "/service1/", /* pathExactMatch= */ null),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cl1.googleapis.com", null)));
|
||||||
assertThat(routes.get(3))
|
assertThat(routes.get(3))
|
||||||
|
|
@ -779,7 +779,7 @@ public class XdsClientImplTestV2 {
|
||||||
new EnvoyProtoData.Route(
|
new EnvoyProtoData.Route(
|
||||||
// default match with cluster route
|
// default match with cluster route
|
||||||
new io.grpc.xds.RouteMatch(
|
new io.grpc.xds.RouteMatch(
|
||||||
/* pathPrefixMatch= */ "",/* pathExactMatch= */ null),
|
/* pathPrefixMatch= */ "", /* pathExactMatch= */ null),
|
||||||
new EnvoyProtoData.RouteAction(
|
new EnvoyProtoData.RouteAction(
|
||||||
TimeUnit.SECONDS.toNanos(15L), "cluster.googleapis.com", null)));
|
TimeUnit.SECONDS.toNanos(15L), "cluster.googleapis.com", null)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import com.google.protobuf.UInt32Value;
|
||||||
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
||||||
import io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType;
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster.DiscoveryType;
|
||||||
import io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig;
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster.EdsClusterConfig;
|
||||||
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy;
|
||||||
import io.envoyproxy.envoy.config.core.v3.Address;
|
import io.envoyproxy.envoy.config.core.v3.Address;
|
||||||
import io.envoyproxy.envoy.config.core.v3.AggregatedConfigSource;
|
import io.envoyproxy.envoy.config.core.v3.AggregatedConfigSource;
|
||||||
import io.envoyproxy.envoy.config.core.v3.ApiConfigSource;
|
import io.envoyproxy.envoy.config.core.v3.ApiConfigSource;
|
||||||
|
|
@ -34,6 +35,8 @@ import io.envoyproxy.envoy.config.core.v3.SelfConfigSource;
|
||||||
import io.envoyproxy.envoy.config.core.v3.SocketAddress;
|
import io.envoyproxy.envoy.config.core.v3.SocketAddress;
|
||||||
import io.envoyproxy.envoy.config.core.v3.TransportSocket;
|
import io.envoyproxy.envoy.config.core.v3.TransportSocket;
|
||||||
import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment;
|
import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment;
|
||||||
|
import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Policy;
|
||||||
|
import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment.Policy.DropOverload;
|
||||||
import io.envoyproxy.envoy.config.endpoint.v3.Endpoint;
|
import io.envoyproxy.envoy.config.endpoint.v3.Endpoint;
|
||||||
import io.envoyproxy.envoy.config.endpoint.v3.LbEndpoint;
|
import io.envoyproxy.envoy.config.endpoint.v3.LbEndpoint;
|
||||||
import io.envoyproxy.envoy.config.endpoint.v3.LocalityLbEndpoints;
|
import io.envoyproxy.envoy.config.endpoint.v3.LocalityLbEndpoints;
|
||||||
|
|
@ -206,7 +209,7 @@ class XdsClientTestHelper {
|
||||||
edsClusterConfigBuilder.setServiceName(edsServiceName);
|
edsClusterConfigBuilder.setServiceName(edsServiceName);
|
||||||
}
|
}
|
||||||
clusterBuilder.setEdsClusterConfig(edsClusterConfigBuilder);
|
clusterBuilder.setEdsClusterConfig(edsClusterConfigBuilder);
|
||||||
clusterBuilder.setLbPolicy(Cluster.LbPolicy.ROUND_ROBIN);
|
clusterBuilder.setLbPolicy(LbPolicy.ROUND_ROBIN);
|
||||||
if (enableLrs) {
|
if (enableLrs) {
|
||||||
clusterBuilder.setLrsServer(
|
clusterBuilder.setLrsServer(
|
||||||
ConfigSource.newBuilder()
|
ConfigSource.newBuilder()
|
||||||
|
|
@ -223,19 +226,20 @@ class XdsClientTestHelper {
|
||||||
String clusterName, @Nullable String edsServiceName, boolean enableLrs,
|
String clusterName, @Nullable String edsServiceName, boolean enableLrs,
|
||||||
@Nullable io.envoyproxy.envoy.api.v2.auth.UpstreamTlsContext upstreamTlsContext) {
|
@Nullable io.envoyproxy.envoy.api.v2.auth.UpstreamTlsContext upstreamTlsContext) {
|
||||||
io.envoyproxy.envoy.api.v2.Cluster.Builder clusterBuilder =
|
io.envoyproxy.envoy.api.v2.Cluster.Builder clusterBuilder =
|
||||||
io.envoyproxy.envoy.api.v2.Cluster.newBuilder();
|
io.envoyproxy.envoy.api.v2.Cluster.newBuilder()
|
||||||
clusterBuilder.setName(clusterName);
|
.setName(clusterName)
|
||||||
clusterBuilder.setType(io.envoyproxy.envoy.api.v2.Cluster.DiscoveryType.EDS);
|
.setType(io.envoyproxy.envoy.api.v2.Cluster.DiscoveryType.EDS);
|
||||||
io.envoyproxy.envoy.api.v2.Cluster.EdsClusterConfig.Builder edsClusterConfigBuilder =
|
io.envoyproxy.envoy.api.v2.Cluster.EdsClusterConfig.Builder edsClusterConfigBuilder =
|
||||||
io.envoyproxy.envoy.api.v2.Cluster.EdsClusterConfig.newBuilder();
|
io.envoyproxy.envoy.api.v2.Cluster.EdsClusterConfig.newBuilder()
|
||||||
edsClusterConfigBuilder.setEdsConfig(
|
.setEdsConfig(
|
||||||
io.envoyproxy.envoy.api.v2.core.ConfigSource.newBuilder()
|
io.envoyproxy.envoy.api.v2.core.ConfigSource.newBuilder().setAds(
|
||||||
.setAds(io.envoyproxy.envoy.api.v2.core.AggregatedConfigSource.getDefaultInstance()));
|
io.envoyproxy.envoy.api.v2.core.AggregatedConfigSource.getDefaultInstance()));
|
||||||
if (edsServiceName != null) {
|
if (edsServiceName != null) {
|
||||||
edsClusterConfigBuilder.setServiceName(edsServiceName);
|
edsClusterConfigBuilder.setServiceName(edsServiceName);
|
||||||
}
|
}
|
||||||
clusterBuilder.setEdsClusterConfig(edsClusterConfigBuilder);
|
clusterBuilder
|
||||||
clusterBuilder.setLbPolicy(io.envoyproxy.envoy.api.v2.Cluster.LbPolicy.ROUND_ROBIN);
|
.setEdsClusterConfig(edsClusterConfigBuilder)
|
||||||
|
.setLbPolicy(io.envoyproxy.envoy.api.v2.Cluster.LbPolicy.ROUND_ROBIN);
|
||||||
if (enableLrs) {
|
if (enableLrs) {
|
||||||
clusterBuilder.setLrsServer(
|
clusterBuilder.setLrsServer(
|
||||||
io.envoyproxy.envoy.api.v2.core.ConfigSource.newBuilder()
|
io.envoyproxy.envoy.api.v2.core.ConfigSource.newBuilder()
|
||||||
|
|
@ -250,19 +254,16 @@ class XdsClientTestHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
static ClusterLoadAssignment buildClusterLoadAssignment(String clusterName,
|
static ClusterLoadAssignment buildClusterLoadAssignment(String clusterName,
|
||||||
List<LocalityLbEndpoints> localityLbEndpoints,
|
List<LocalityLbEndpoints> localityLbEndpoints, List<DropOverload> dropOverloads) {
|
||||||
List<ClusterLoadAssignment.Policy.DropOverload> dropOverloads) {
|
|
||||||
return
|
return
|
||||||
ClusterLoadAssignment.newBuilder()
|
ClusterLoadAssignment.newBuilder()
|
||||||
.setClusterName(clusterName)
|
.setClusterName(clusterName)
|
||||||
.addAllEndpoints(localityLbEndpoints)
|
.addAllEndpoints(localityLbEndpoints)
|
||||||
.setPolicy(
|
.setPolicy(Policy.newBuilder().addAllDropOverloads(dropOverloads))
|
||||||
ClusterLoadAssignment.Policy.newBuilder()
|
|
||||||
.addAllDropOverloads(dropOverloads))
|
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation") // disableOverprovisioning is deprecated by needed for v2
|
||||||
static io.envoyproxy.envoy.api.v2.ClusterLoadAssignment buildClusterLoadAssignmentV2(
|
static io.envoyproxy.envoy.api.v2.ClusterLoadAssignment buildClusterLoadAssignmentV2(
|
||||||
String clusterName,
|
String clusterName,
|
||||||
List<io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints> localityLbEndpoints,
|
List<io.envoyproxy.envoy.api.v2.endpoint.LocalityLbEndpoints> localityLbEndpoints,
|
||||||
|
|
@ -278,10 +279,9 @@ class XdsClientTestHelper {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ClusterLoadAssignment.Policy.DropOverload buildDropOverload(
|
static DropOverload buildDropOverload(String category, int dropPerMillion) {
|
||||||
String category, int dropPerMillion) {
|
|
||||||
return
|
return
|
||||||
ClusterLoadAssignment.Policy.DropOverload.newBuilder()
|
DropOverload.newBuilder()
|
||||||
.setCategory(category)
|
.setCategory(category)
|
||||||
.setDropPercentage(
|
.setDropPercentage(
|
||||||
FractionalPercent.newBuilder()
|
FractionalPercent.newBuilder()
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ public class XdsClientWrapperForServerSdsTest {
|
||||||
"exact IP over IPANY match, expect filter2"
|
"exact IP over IPANY match, expect filter2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
PORT,// matches dest port but no address match
|
PORT, // matches dest port but no address match
|
||||||
"168.20.20.2",
|
"168.20.20.2",
|
||||||
"10.1.2.4",
|
"10.1.2.4",
|
||||||
"192.168.10.1",
|
"192.168.10.1",
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@
|
||||||
package io.grpc.xds.internal.certprovider;
|
package io.grpc.xds.internal.certprovider;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static io.grpc.xds.internal.certprovider.CertProviderClientSslContextProviderTest.QueuedExecutor;
|
|
||||||
import static io.grpc.xds.internal.certprovider.CommonCertProviderTestUtils.getCertFromResourceName;
|
import static io.grpc.xds.internal.certprovider.CommonCertProviderTestUtils.getCertFromResourceName;
|
||||||
import static io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.CA_PEM_FILE;
|
import static io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.CA_PEM_FILE;
|
||||||
import static io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.CLIENT_PEM_FILE;
|
import static io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.CLIENT_PEM_FILE;
|
||||||
|
|
@ -34,6 +33,7 @@ import io.envoyproxy.envoy.config.core.v3.DataSource;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext;
|
||||||
import io.grpc.xds.Bootstrapper;
|
import io.grpc.xds.Bootstrapper;
|
||||||
import io.grpc.xds.EnvoyServerProtoData;
|
import io.grpc.xds.EnvoyServerProtoData;
|
||||||
|
import io.grpc.xds.internal.certprovider.CertProviderClientSslContextProviderTest.QueuedExecutor;
|
||||||
import io.grpc.xds.internal.sds.CommonTlsContextTestsUtil;
|
import io.grpc.xds.internal.sds.CommonTlsContextTestsUtil;
|
||||||
import io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.TestCallback;
|
import io.grpc.xds.internal.sds.CommonTlsContextTestsUtil.TestCallback;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
|
|
||||||
|
|
@ -226,32 +226,32 @@ public class MeshCaCertificateProviderProviderTest {
|
||||||
eq(TimeUnit.SECONDS.toMillis(RPC_TIMEOUT_SECONDS)));
|
eq(TimeUnit.SECONDS.toMillis(RPC_TIMEOUT_SECONDS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildFullConfig() throws IOException {
|
private static Map<String, ?> buildFullConfig() throws IOException {
|
||||||
return getCertProviderConfig(CommonCertProviderTestUtils.getNonDefaultTestBootstrapInfo());
|
return getCertProviderConfig(CommonCertProviderTestUtils.getNonDefaultTestBootstrapInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildMinimalConfig() throws IOException {
|
private static Map<String, ?> buildMinimalConfig() throws IOException {
|
||||||
return getCertProviderConfig(CommonCertProviderTestUtils.getMinimalBootstrapInfo());
|
return getCertProviderConfig(CommonCertProviderTestUtils.getMinimalBootstrapInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildBadClusterUrlConfig() throws IOException {
|
private static Map<String, ?> buildBadClusterUrlConfig() throws IOException {
|
||||||
return getCertProviderConfig(
|
return getCertProviderConfig(
|
||||||
CommonCertProviderTestUtils.getMinimalAndBadClusterUrlBootstrapInfo());
|
CommonCertProviderTestUtils.getMinimalAndBadClusterUrlBootstrapInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildMissingSaJwtLocationConfig() throws IOException {
|
private static Map<String, ?> buildMissingSaJwtLocationConfig() throws IOException {
|
||||||
return getCertProviderConfig(CommonCertProviderTestUtils.getMissingSaJwtLocation());
|
return getCertProviderConfig(CommonCertProviderTestUtils.getMissingSaJwtLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildMissingGkeClusterUrlConfig() throws IOException {
|
private static Map<String, ?> buildMissingGkeClusterUrlConfig() throws IOException {
|
||||||
return getCertProviderConfig(CommonCertProviderTestUtils.getMissingGkeClusterUrl());
|
return getCertProviderConfig(CommonCertProviderTestUtils.getMissingGkeClusterUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> buildBadChannelCredsConfig() throws IOException {
|
private static Map<String, ?> buildBadChannelCredsConfig() throws IOException {
|
||||||
return getCertProviderConfig(CommonCertProviderTestUtils.getBadChannelCredsConfig());
|
return getCertProviderConfig(CommonCertProviderTestUtils.getBadChannelCredsConfig());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, ?> getCertProviderConfig(Bootstrapper.BootstrapInfo bootstrapInfo) {
|
private static Map<String, ?> getCertProviderConfig(Bootstrapper.BootstrapInfo bootstrapInfo) {
|
||||||
Map<String, Bootstrapper.CertificateProviderInfo> certProviders =
|
Map<String, Bootstrapper.CertificateProviderInfo> certProviders =
|
||||||
bootstrapInfo.getCertProviders();
|
bootstrapInfo.getCertProviders();
|
||||||
Bootstrapper.CertificateProviderInfo gcpIdInfo =
|
Bootstrapper.CertificateProviderInfo gcpIdInfo =
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package io.grpc.xds.internal.rbac.engine;
|
package io.grpc.xds.internal.rbac.engine;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
|
@ -31,7 +31,6 @@ import io.envoyproxy.envoy.config.rbac.v2.RBAC;
|
||||||
import io.envoyproxy.envoy.config.rbac.v2.RBAC.Action;
|
import io.envoyproxy.envoy.config.rbac.v2.RBAC.Action;
|
||||||
import io.grpc.xds.internal.rbac.engine.cel.Activation;
|
import io.grpc.xds.internal.rbac.engine.cel.Activation;
|
||||||
import io.grpc.xds.internal.rbac.engine.cel.InterpreterException;
|
import io.grpc.xds.internal.rbac.engine.cel.InterpreterException;
|
||||||
import java.lang.StringBuilder;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
|
|
@ -51,14 +50,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private EvaluateArgs args;
|
private EvaluateArgs args;
|
||||||
|
|
||||||
@Mock
|
|
||||||
private Activation activation;
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private Map<String, Object> attributes;
|
private Map<String, Object> attributes;
|
||||||
|
|
||||||
private AuthorizationEngine engine;
|
|
||||||
private AuthorizationEngine spyEngine;
|
private AuthorizationEngine spyEngine;
|
||||||
private AuthorizationDecision evaluateResult;
|
private AuthorizationDecision evaluateResult;
|
||||||
|
|
||||||
|
|
@ -130,7 +124,7 @@ public class AuthzEngineEvaluationTest {
|
||||||
@Before
|
@Before
|
||||||
public void setupEngineSingleRbacAllow() {
|
public void setupEngineSingleRbacAllow() {
|
||||||
buildRbac();
|
buildRbac();
|
||||||
engine = new AuthorizationEngine(rbacAllow);
|
AuthorizationEngine engine = new AuthorizationEngine(rbacAllow);
|
||||||
spyEngine = Mockito.spy(engine);
|
spyEngine = Mockito.spy(engine);
|
||||||
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
||||||
}
|
}
|
||||||
|
|
@ -139,7 +133,7 @@ public class AuthzEngineEvaluationTest {
|
||||||
@Before
|
@Before
|
||||||
public void setupEngineSingleRbacDeny() {
|
public void setupEngineSingleRbacDeny() {
|
||||||
buildRbac();
|
buildRbac();
|
||||||
engine = new AuthorizationEngine(rbacDeny);
|
AuthorizationEngine engine = new AuthorizationEngine(rbacDeny);
|
||||||
spyEngine = Mockito.spy(engine);
|
spyEngine = Mockito.spy(engine);
|
||||||
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
||||||
}
|
}
|
||||||
|
|
@ -148,7 +142,7 @@ public class AuthzEngineEvaluationTest {
|
||||||
@Before
|
@Before
|
||||||
public void setupEngineRbacPair() {
|
public void setupEngineRbacPair() {
|
||||||
buildRbac();
|
buildRbac();
|
||||||
engine = new AuthorizationEngine(rbacDeny, rbacAllow);
|
AuthorizationEngine engine = new AuthorizationEngine(rbacDeny, rbacAllow);
|
||||||
spyEngine = Mockito.spy(engine);
|
spyEngine = Mockito.spy(engine);
|
||||||
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
doReturn(ImmutableMap.copyOf(attributes)).when(args).generateEnvoyAttributes();
|
||||||
}
|
}
|
||||||
|
|
@ -166,9 +160,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition2), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition2), any(Activation.class));
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition3), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition3), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.ALLOW);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.ALLOW);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 1"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 1");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -184,9 +178,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition2), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition2), any(Activation.class));
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition3), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition3), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 0);
|
assertThat(evaluateResult.getPolicyNames()).isEmpty();
|
||||||
assertEquals(evaluateResult.toString(),
|
assertThat(evaluateResult.toString()).isEqualTo(
|
||||||
new StringBuilder("Authorization Decision: DENY. \n").toString());
|
new StringBuilder("Authorization Decision: DENY. \n").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -207,7 +201,7 @@ public class AuthzEngineEvaluationTest {
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.ALLOW);
|
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.ALLOW);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 2"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 2");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -226,11 +220,11 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition3), any(Activation.class));
|
.when(spyEngine).matches(eq(condition3), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.UNKNOWN);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.UNKNOWN);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 2);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(2);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 2"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 2");
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 3"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 3");
|
||||||
assertEquals(evaluateResult.toString(),
|
assertThat(evaluateResult.toString()).isEqualTo(
|
||||||
new StringBuilder("Authorization Decision: UNKNOWN. \n"
|
new StringBuilder("Authorization Decision: UNKNOWN. \n"
|
||||||
+ "Policy 2; \n" + "Policy 3; \n").toString());
|
+ "Policy 2; \n" + "Policy 3; \n").toString());
|
||||||
}
|
}
|
||||||
|
|
@ -250,10 +244,10 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition3), any(Activation.class));
|
.when(spyEngine).matches(eq(condition3), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.ALLOW);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.ALLOW);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 2"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 2");
|
||||||
assertEquals(evaluateResult.toString(),
|
assertThat(evaluateResult.toString()).isEqualTo(
|
||||||
new StringBuilder("Authorization Decision: ALLOW. \n" + "Policy 2; \n").toString());
|
new StringBuilder("Authorization Decision: ALLOW. \n" + "Policy 2; \n").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -270,9 +264,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 4"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 4");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -288,8 +282,8 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.ALLOW);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.ALLOW);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 0);
|
assertThat(evaluateResult.getPolicyNames()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -307,9 +301,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 5"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 5");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -328,10 +322,10 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.UNKNOWN);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.UNKNOWN);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 2);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(2);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 5"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 5");
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 6"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 6");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -349,9 +343,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 5"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 5");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -371,9 +365,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(true).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 4"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 4");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -396,9 +390,9 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 1);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(1);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 5"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 5");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -419,10 +413,10 @@ public class AuthzEngineEvaluationTest {
|
||||||
doThrow(new InterpreterException.Builder("Unknown result").build())
|
doThrow(new InterpreterException.Builder("Unknown result").build())
|
||||||
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
.when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.UNKNOWN);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.UNKNOWN);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 2);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(2);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 5"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 5");
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 6"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 6");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -446,10 +440,10 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.UNKNOWN);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.UNKNOWN);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 2);
|
assertThat(evaluateResult.getPolicyNames()).hasSize(2);
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 2"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 2");
|
||||||
assertTrue(evaluateResult.getPolicyNames().contains("Policy 3"));
|
assertThat(evaluateResult.getPolicyNames()).contains("Policy 3");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -469,7 +463,7 @@ public class AuthzEngineEvaluationTest {
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition5), any(Activation.class));
|
||||||
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
doReturn(false).when(spyEngine).matches(eq(condition6), any(Activation.class));
|
||||||
evaluateResult = spyEngine.evaluate(args);
|
evaluateResult = spyEngine.evaluate(args);
|
||||||
assertEquals(evaluateResult.getDecision(), AuthorizationDecision.Output.DENY);
|
assertThat(evaluateResult.getDecision()).isEqualTo(AuthorizationDecision.Output.DENY);
|
||||||
assertEquals(evaluateResult.getPolicyNames().size(), 0);
|
assertThat(evaluateResult.getPolicyNames()).isEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,6 @@ public class AuthzEngineTest {
|
||||||
private AuthorizationEngine engine;
|
private AuthorizationEngine engine;
|
||||||
private RBAC rbacDeny;
|
private RBAC rbacDeny;
|
||||||
private RBAC rbacAllow;
|
private RBAC rbacAllow;
|
||||||
private Expr expr;
|
|
||||||
private Object result;
|
private Object result;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
|
|
@ -130,7 +129,7 @@ public class AuthzEngineTest {
|
||||||
public void testCelInterface() throws InterpreterException {
|
public void testCelInterface() throws InterpreterException {
|
||||||
engine = new AuthorizationEngine(rbacAllow);
|
engine = new AuthorizationEngine(rbacAllow);
|
||||||
when(interpretable.eval(any(Activation.class))).thenReturn(true);
|
when(interpretable.eval(any(Activation.class))).thenReturn(true);
|
||||||
expr = Expr.newBuilder().build();
|
Expr expr = Expr.getDefaultInstance();
|
||||||
result = engine.matches(expr, activation);
|
result = engine.matches(expr, activation);
|
||||||
assertThat(messageProvider).isNotNull();
|
assertThat(messageProvider).isNotNull();
|
||||||
assertThat(dispatcher).isNotNull();
|
assertThat(dispatcher).isNotNull();
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import io.envoyproxy.envoy.config.core.v3.DataSource;
|
||||||
import io.envoyproxy.envoy.config.core.v3.GrpcService;
|
import io.envoyproxy.envoy.config.core.v3.GrpcService;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CertificateValidationContext;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext;
|
||||||
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext.CombinedCertificateValidationContext;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.CommonTlsContext.CombinedCertificateValidationContext;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext;
|
||||||
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig;
|
import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig;
|
||||||
|
|
@ -497,19 +498,20 @@ public class CommonTlsContextTestsUtil {
|
||||||
String rootCertName,
|
String rootCertName,
|
||||||
CertificateValidationContext staticCertValidationContext) {
|
CertificateValidationContext staticCertValidationContext) {
|
||||||
if (rootInstanceName != null) {
|
if (rootInstanceName != null) {
|
||||||
CommonTlsContext.CertificateProviderInstance.Builder providerInstanceBuilder =
|
CertificateProviderInstance providerInstance =
|
||||||
CommonTlsContext.CertificateProviderInstance.newBuilder()
|
CertificateProviderInstance.newBuilder()
|
||||||
.setInstanceName(rootInstanceName)
|
.setInstanceName(rootInstanceName)
|
||||||
.setCertificateName(rootCertName);
|
.setCertificateName(rootCertName)
|
||||||
|
.build();
|
||||||
if (staticCertValidationContext != null) {
|
if (staticCertValidationContext != null) {
|
||||||
CombinedCertificateValidationContext combined =
|
CombinedCertificateValidationContext combined =
|
||||||
CombinedCertificateValidationContext.newBuilder()
|
CombinedCertificateValidationContext.newBuilder()
|
||||||
.setDefaultValidationContext(staticCertValidationContext)
|
.setDefaultValidationContext(staticCertValidationContext)
|
||||||
.setValidationContextCertificateProviderInstance(providerInstanceBuilder)
|
.setValidationContextCertificateProviderInstance(providerInstance)
|
||||||
.build();
|
.build();
|
||||||
return builder.setCombinedValidationContext(combined);
|
return builder.setCombinedValidationContext(combined);
|
||||||
}
|
}
|
||||||
builder = builder.setValidationContextCertificateProviderInstance(providerInstanceBuilder);
|
builder = builder.setValidationContextCertificateProviderInstance(providerInstance);
|
||||||
}
|
}
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue