/** * Partition the limit by a request attribute. * @return Chainable builder */ public GrpcServerLimiterBuilder partitionByAttribute(Attributes.Key<String> attribute) { return partitionResolver(context -> context.getCall().getAttributes().get(attribute)); }
@Override public Authentication readAuthentication(final ServerCall<?, ?> call, final Metadata metadata) { final SSLSession sslSession = call.getAttributes().get(Grpc.TRANSPORT_ATTR_SSL_SESSION); if (sslSession == null) { log.trace("Peer not verified via SSL"); return null; } Certificate[] certs; try { certs = sslSession.getPeerCertificates(); } catch (final SSLPeerUnverifiedException e) { log.trace("Peer not verified via certificate", e); return null; } return fromCertificate(certs[certs.length - 1]); }
((AbstractAuthenticationToken) authentication).setDetails(call.getAttributes());
private <ReqT, RespT> String getRemoteInetSocketString(ServerCall<ReqT, RespT> call) { return call.getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR).toString(); } }
@Override public Authentication readAuthentication(final ServerCall<?, ?> call, final Metadata metadata) { final SSLSession sslSession = call.getAttributes().get(Grpc.TRANSPORT_ATTR_SSL_SESSION); if (sslSession == null) { log.trace("Peer not verified via SSL"); return null; } Certificate[] certs; try { certs = sslSession.getPeerCertificates(); } catch (final SSLPeerUnverifiedException e) { log.trace("Peer not verified via certificate", e); return null; } return fromCertificate(certs[certs.length - 1]); }
@Override @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1779") public Attributes getAttributes() { return delegate().getAttributes(); }
@Override @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1779") public Attributes getAttributes() { return delegate().getAttributes(); }
private void contextCopy(ServerCall<?, ?> call, final Metadata headers) { copyMetadataToThreadLocal(headers); InetSocketAddress remoteAddress = (InetSocketAddress) call.getAttributes().get(Grpc.TRANSPORT_ATTR_REMOTE_ADDR); RpcContext.getContext().setAttachment(Constants.REMOTE_ADDRESS, remoteAddress.getHostString()); }
@Override public <ReqT, RespT> Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) { Context context = Context.current(); try { SocketAddress client = call.getAttributes().get(TRANSPORT_ATTR_REMOTE_ADDR); context = context.withValue(REMOTE_ADDRESS, client); } catch (Exception e) { log.error("Unable to get remote address", e); } return Contexts.interceptCall(context, call, headers, next); } }
((AbstractAuthenticationToken) authentication).setDetails(call.getAttributes());
break; case CALL_ATTRIBUTES: span.setTag("grpc.call_attributes", call.getAttributes().toString()); break; case HEADERS: