in callouts/java/service-callout/src/main/java/example/JwtAuth.java [122:143]
public String extractJwtToken(HttpHeaders requestHeaders) {
requestHeaders.getHeaders().getHeadersList().forEach(header -> {
logger.info("Header: {} = {}", header.getKey(), header.getRawValue());
});
Optional<String> jwtToken = requestHeaders.getHeaders().getHeadersList().stream()
.filter(header -> "Authorization".equalsIgnoreCase(header.getKey()))
.map(header -> new String(header.getRawValue().toByteArray(), StandardCharsets.UTF_8))
.findFirst()
.map(authHeader -> {
String[] parts = authHeader.split(" ");
if (parts.length == 2 && "Bearer".equalsIgnoreCase(parts[0])) {
return parts[1];
} else {
logger.warn("Authorization header format is invalid.");
return null;
}
});
return jwtToken.orElse(null);
}