Skip to content

Commit ae199dc

Browse files
committed
XFCC round trip fixes
1 parent 9dbf83a commit ae199dc

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

grpc-contrib/src/main/java/com/salesforce/grpc/contrib/xfcc/XForwardedClientCert.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ public String toString() {
9797
if (!sanUri.isEmpty()) {
9898
kvp.add("URI=" + enquote(sanUri));
9999
}
100+
for (String dns : sanDns) {
101+
kvp.add("DNS=" + enquote(dns));
102+
}
100103
if (!subject.isEmpty()) {
101104
kvp.add("Subject=" + enquote(subject));
102105
}

grpc-contrib/src/test/java/com/salesforce/grpc/contrib/xfcc/XfccMarshallerTest.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void parseSimpleHeaderWorks() {
1919
XfccMarshaller marshaller = new XfccMarshaller();
2020

2121
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
22-
"SAN=http://testclient.lyft.com";
22+
"URI=http://testclient.lyft.com";
2323
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
2424

2525
assertThat(certs.size()).isEqualTo(1);
@@ -32,8 +32,8 @@ public void parseSimpleHeaderWorks() {
3232
public void parseCompoundHeaderWorks() {
3333
XfccMarshaller marshaller = new XfccMarshaller();
3434

35-
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;SAN=http://testclient.lyft.com," +
36-
"By=http://backend.lyft.com;Hash=9ba61d6425303443c0748a02dd8de688468ed33be74eee6556d90c0149c1309e;SAN=http://frontend.lyft.com";
35+
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;URI=http://testclient.lyft.com," +
36+
"By=http://backend.lyft.com;Hash=9ba61d6425303443c0748a02dd8de688468ed33be74eee6556d90c0149c1309e;URI=http://frontend.lyft.com";
3737
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
3838

3939
assertThat(certs.size()).isEqualTo(2);
@@ -46,7 +46,7 @@ public void quotedHeaderWorks() {
4646
XfccMarshaller marshaller = new XfccMarshaller();
4747

4848
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
49-
"Subject=\"/C=US/ST=CA/L=San Francisco/OU=Lyft/CN=Test Client\";SAN=http://testclient.lyft.com";
49+
"Subject=\"/C=US/ST=CA/L=San Francisco/OU=Lyft/CN=Test Client\";URI=http://testclient.lyft.com";
5050
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
5151

5252
assertThat(certs.size()).isEqualTo(1);
@@ -58,7 +58,7 @@ public void escapedQuotedHeaderWorks() {
5858
XfccMarshaller marshaller = new XfccMarshaller();
5959

6060
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
61-
"Subject=\"/C=US/ST=CA/L=\\\"San Francisco\\\"/OU=Lyft/CN=Test Client\";SAN=http://testclient.lyft.com";
61+
"Subject=\"/C=US/ST=CA/L=\\\"San Francisco\\\"/OU=Lyft/CN=Test Client\";URI=http://testclient.lyft.com";
6262
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
6363

6464
assertThat(certs.size()).isEqualTo(1);
@@ -70,20 +70,25 @@ public void roundTripSimpleTest() {
7070
XfccMarshaller marshaller = new XfccMarshaller();
7171

7272
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
73-
"SAN=http://testclient.lyft.com";
73+
"URI=http://testclient.lyft.com";
7474

7575
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
7676
String serialized = marshaller.toAsciiString(certs);
7777

7878
assertThat(serialized).isEqualTo(header);
7979
}
8080

81+
@Test
82+
public void roundTripUriAndDnsTest() {
83+
84+
}
85+
8186
@Test
8287
public void roundTripCompoundTest() {
8388
XfccMarshaller marshaller = new XfccMarshaller();
8489

85-
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;SAN=http://testclient.lyft.com," +
86-
"By=http://backend.lyft.com;Hash=9ba61d6425303443c0748a02dd8de688468ed33be74eee6556d90c0149c1309e;SAN=http://frontend.lyft.com";
90+
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;URI=http://testclient.lyft.com," +
91+
"By=http://backend.lyft.com;Hash=9ba61d6425303443c0748a02dd8de688468ed33be74eee6556d90c0149c1309e;URI=http://frontend.lyft.com";
8792

8893
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
8994
String serialized = marshaller.toAsciiString(certs);
@@ -96,7 +101,7 @@ public void roundTripQuotedTest() {
96101
XfccMarshaller marshaller = new XfccMarshaller();
97102

98103
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
99-
"SAN=http://testclient.lyft.com;Subject=\"/C=US/ST=CA/L=San Francisco/OU=Lyft/CN=Test Client\"";
104+
"URI=http://testclient.lyft.com;Subject=\"/C=US/ST=CA/L=San Francisco/OU=Lyft/CN=Test Client\"";
100105

101106
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
102107
String serialized = marshaller.toAsciiString(certs);
@@ -109,7 +114,7 @@ public void roundTripEscapedQuotedTest() {
109114
XfccMarshaller marshaller = new XfccMarshaller();
110115

111116
String header = "By=http://frontend.lyft.com;Hash=468ed33be74eee6556d90c0149c1309e9ba61d6425303443c0748a02dd8de688;" +
112-
"SAN=http://testclient.lyft.com;Subject=\"/C=US/ST=CA/L=\\\"San Francisco\\\"/OU=Lyft/CN=Test Client\"";
117+
"URI=http://testclient.lyft.com;Subject=\"/C=US/ST=CA/L=\\\"San Francisco\\\"/OU=Lyft/CN=Test Client\"";
113118

114119
List<XForwardedClientCert> certs = marshaller.parseAsciiString(header);
115120
String serialized = marshaller.toAsciiString(certs);

0 commit comments

Comments
 (0)