正在查看: 逼多多 v3.6.2 应用的 CompositeCallCredentials.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 逼多多 v3.6.2 应用的 CompositeCallCredentials.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package io.grpc;
import io.grpc.CallCredentials;
import java.util.concurrent.Executor;
import q.l;
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1914")
public final class CompositeCallCredentials extends CallCredentials {
private final CallCredentials credentials1;
private final CallCredentials credentials2;
private static final class CombiningMetadataApplier extends CallCredentials.MetadataApplier {
private final CallCredentials.MetadataApplier delegate;
private final Metadata firstHeaders;
public CombiningMetadataApplier(CallCredentials.MetadataApplier metadataApplier, Metadata metadata) {
this.delegate = metadataApplier;
this.firstHeaders = metadata;
}
@Override
public void apply(Metadata metadata) {
l.o(metadata, "headers");
Metadata metadata2 = new Metadata();
metadata2.merge(this.firstHeaders);
metadata2.merge(metadata);
this.delegate.apply(metadata2);
}
@Override
public void fail(Status status) {
this.delegate.fail(status);
}
}
private final class WrappingMetadataApplier extends CallCredentials.MetadataApplier {
private final Executor appExecutor;
private final Context context;
private final CallCredentials.MetadataApplier delegate;
private final CallCredentials.RequestInfo requestInfo;
public WrappingMetadataApplier(CallCredentials.RequestInfo requestInfo, Executor executor, CallCredentials.MetadataApplier metadataApplier, Context context) {
this.requestInfo = requestInfo;
this.appExecutor = executor;
this.delegate = (CallCredentials.MetadataApplier) l.o(metadataApplier, "delegate");
this.context = (Context) l.o(context, "context");
}
@Override
public void apply(Metadata metadata) {
l.o(metadata, "headers");
Context attach = this.context.attach();
try {
CompositeCallCredentials.this.credentials2.applyRequestMetadata(this.requestInfo, this.appExecutor, new CombiningMetadataApplier(this.delegate, metadata));
} finally {
this.context.detach(attach);
}
}
@Override
public void fail(Status status) {
this.delegate.fail(status);
}
}
public CompositeCallCredentials(CallCredentials callCredentials, CallCredentials callCredentials2) {
this.credentials1 = (CallCredentials) l.o(callCredentials, "creds1");
this.credentials2 = (CallCredentials) l.o(callCredentials2, "creds2");
}
@Override
public void applyRequestMetadata(CallCredentials.RequestInfo requestInfo, Executor executor, CallCredentials.MetadataApplier metadataApplier) {
this.credentials1.applyRequestMetadata(requestInfo, executor, new WrappingMetadataApplier(requestInfo, executor, metadataApplier, Context.current()));
}
}