Skip to content

Commit 24ffda3

Browse files
liwanxueWanxue18code
authored
accesslog: add field to TLSProperties in data.accesslog.v3.AccessLogCommon (envoyproxy#31508)
* accesslog: add field to TLSProperties in data.accesslog.v3.AccessLogCommon Signed-off-by: Li <[email protected]> * Update changelogs/current.yaml Signed-off-by: code <[email protected]> Signed-off-by: Li <[email protected]> Signed-off-by: Li <[email protected]> * fix intergration_test for issuer Signed-off-by: Li <[email protected]> Signed-off-by: Li <[email protected]> * fix missing value for issuerPeerCertificate in test case Signed-off-by: Li <[email protected]> Signed-off-by: Li <[email protected]> --------- Signed-off-by: Li <[email protected]> Signed-off-by: Li <[email protected]> Co-authored-by: Li <[email protected]> Co-authored-by: code <[email protected]>
1 parent c121ee4 commit 24ffda3

File tree

5 files changed

+18
-0
lines changed

5 files changed

+18
-0
lines changed

api/envoy/data/accesslog/v3/accesslog.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,9 @@ message TLSProperties {
409409

410410
// The subject field of the certificate.
411411
string subject = 2;
412+
413+
// The issuer field of the certificate.
414+
string issuer = 3;
412415
}
413416

414417
// Version of TLS that was negotiated.

changelogs/current.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ behavior_changes:
4646
Handle empty response bodies in ``grpc_http1_reverse_bridge``. This may cause problems for clients expecting the filter to crash
4747
for empty responses. This behavioral change can be temporarily reverted by setting runtime guard
4848
``envoy.reloadable_features.grpc_http1_reverse_bridge_handle_empty_response`` to ``false``.
49+
- area: access_log
50+
change: |
51+
Added issuer in certificate_properties to the gRPC access log service(AlS).
4952
5053
minor_behavior_changes:
5154
# *Changes that may cause incompatibilities for some users, but should not for most*

source/extensions/access_loggers/grpc/grpc_access_log_utils.cc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ void Utility::extractCommonAccessLogProperties(
204204
}
205205

206206
peer_properties->set_subject(downstream_ssl_connection->subjectPeerCertificate());
207+
peer_properties->set_issuer(
208+
MessageUtil::sanitizeUtf8String(downstream_ssl_connection->issuerPeerCertificate()));
209+
207210
tls_properties->set_tls_session_id(
208211
MessageUtil::sanitizeUtf8String(downstream_ssl_connection->sessionId()));
209212
tls_properties->set_tls_version(

test/extensions/access_loggers/grpc/http_grpc_access_log_impl_test.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,8 @@ response: {}
461461
ON_CALL(*connection_info, uriSanLocalCertificate()).WillByDefault(Return(localSans));
462462
const std::string peerSubject = "peerSubject";
463463
ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(peerSubject));
464+
const std::string peerIssuer = "peerIssuer";
465+
ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(peerIssuer));
464466
const std::string localSubject = "localSubject";
465467
ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(localSubject));
466468
const std::string sessionId =
@@ -512,6 +514,7 @@ response: {}
512514
- uri: peerSan1
513515
- uri: peerSan2
514516
subject: peerSubject
517+
issuer: peerIssuer
515518
tls_session_id: D62A523A65695219D46FE1FFE285A4C371425ACE421B110B5B8D11D3EB4D5F0B
516519
request:
517520
request_method: "METHOD_UNSPECIFIED"
@@ -530,6 +533,7 @@ response: {}
530533
auto connection_info = std::make_shared<NiceMock<Ssl::MockConnectionInfo>>();
531534
const std::string empty;
532535
ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(empty));
536+
ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(empty));
533537
ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(empty));
534538
ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(empty));
535539
const std::string tlsVersion = "TLSv1.2";
@@ -586,6 +590,7 @@ response: {}
586590
auto connection_info = std::make_shared<NiceMock<Ssl::MockConnectionInfo>>();
587591
const std::string empty;
588592
ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(empty));
593+
ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(empty));
589594
ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(empty));
590595
ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(empty));
591596
const std::string tlsVersion = "TLSv1.1";
@@ -642,6 +647,7 @@ response: {}
642647
auto connection_info = std::make_shared<NiceMock<Ssl::MockConnectionInfo>>();
643648
const std::string empty;
644649
ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(empty));
650+
ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(empty));
645651
ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(empty));
646652
ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(empty));
647653
const std::string tlsVersion = "TLSv1";
@@ -698,6 +704,7 @@ response: {}
698704
auto connection_info = std::make_shared<NiceMock<Ssl::MockConnectionInfo>>();
699705
const std::string empty;
700706
ON_CALL(*connection_info, subjectPeerCertificate()).WillByDefault(ReturnRef(empty));
707+
ON_CALL(*connection_info, issuerPeerCertificate()).WillByDefault(ReturnRef(empty));
701708
ON_CALL(*connection_info, subjectLocalCertificate()).WillByDefault(ReturnRef(empty));
702709
ON_CALL(*connection_info, sessionId()).WillByDefault(ReturnRef(empty));
703710
const std::string tlsVersion = "TLSv1.4";

test/extensions/access_loggers/grpc/tcp_grpc_access_log_integration_test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,7 @@ TEST_P(TcpGrpcAccessLogIntegrationTest, SslTerminatedNoJA3) {
536536
subject_alt_name:
537537
uri: "spiffe://lyft.com/frontend-team"
538538
subject: "[email protected],CN=Test Frontend Team,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"
539+
issuer: "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"
539540
upstream_remote_address:
540541
socket_address:
541542
upstream_local_address:
@@ -600,6 +601,7 @@ TEST_P(TcpGrpcAccessLogIntegrationTest, SslTerminatedWithJA3) {
600601
subject_alt_name:
601602
uri: "spiffe://lyft.com/frontend-team"
602603
subject: "[email protected],CN=Test Frontend Team,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"
604+
issuer: "CN=Test CA,OU=Lyft Engineering,O=Lyft,L=San Francisco,ST=California,C=US"
603605
upstream_remote_address:
604606
socket_address:
605607
upstream_local_address:

0 commit comments

Comments
 (0)