Skip to content

Commit

Permalink
[pinpoint-apm#8543] Fix app proxy header
Browse files Browse the repository at this point in the history
  • Loading branch information
jaehong-kim committed Dec 22, 2021
1 parent 211b316 commit 223f8c5
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig;
import com.navercorp.pinpoint.bootstrap.util.NumberUtils;
import com.navercorp.pinpoint.common.util.IdValidateUtils;
import com.navercorp.pinpoint.common.util.StringUtils;
import com.navercorp.pinpoint.profiler.context.recorder.proxy.ProxyRequestHeader;
import com.navercorp.pinpoint.profiler.context.recorder.proxy.ProxyRequestHeaderBuilder;
Expand Down Expand Up @@ -76,6 +77,17 @@ public ProxyRequestHeader parseHeader(String name, String value) {
} else if (token.startsWith("app=")) {
final String app = token.substring(4).trim();
if (!app.isEmpty()) {
try {
if (!IdValidateUtils.validateId(app, 30)) {
header.setValid(false);
header.setCause("app can only contain [a-zA-Z0-9], '.', '-', '_'. maxLength: 30");
return header.build();
}
} catch (Exception ignored) {
header.setValid(false);
header.setCause("invalid app");
return header.build();
}
header.setApp(app);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,13 @@ public void parseApp() throws Exception {
assertEquals(-1, proxyHttpHeader.getIdlePercent());
assertEquals(-1, proxyHttpHeader.getBusyPercent());
}

@Test
public void parseAppInvalid() throws Exception {
AppRequestParser parser = new AppRequestParser();
final long currentTimeMillis = System.currentTimeMillis();
String value = "t=" + currentTimeMillis + "app=jndi:xxx";
ProxyRequestHeader proxyHttpHeader = parser.parse(value);
assertFalse(proxyHttpHeader.isValid());
}
}

0 comments on commit 223f8c5

Please sign in to comment.