Skip to content

Commit cc269c2

Browse files
authored
Merge pull request #135 from networknt/issue134
fixes #134 update header middleware for the config change
2 parents d79c0ae + 9c7fe01 commit cc269c2

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

src/main/java/com/networknt/aws/lambda/handler/middleware/header/HeaderMiddleware.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ public void removeHeaders(List<String> removeList, Map<String, String> headers)
7474
headers.entrySet().removeIf(entry -> lowercaseSet.contains(entry.getKey().toLowerCase()));
7575
}
7676

77-
public void updateHeaders(Map<String, Object> updateMap, Map<String, String> headers) {
77+
public void updateHeaders(Map<String, String> updateMap, Map<String, String> headers) {
7878
// convert update map key to lowercase
7979
Map<String, Object> lowercaseUpdateMap = new HashMap<>();
80-
for (Map.Entry<String, Object> entry : updateMap.entrySet()) {
80+
for (Map.Entry<String, String> entry : updateMap.entrySet()) {
8181
lowercaseUpdateMap.put(entry.getKey().toLowerCase(), entry.getValue());
8282
}
8383
// Iterate over the original header map and update values where keys match case-insensitively
@@ -93,7 +93,7 @@ public void updateHeaders(Map<String, Object> updateMap, Map<String, String> hea
9393
lowercaseHeaders.put(entry.getKey().toLowerCase(), entry.getValue());
9494
}
9595
// Iterate over the update map and add new entries to the header map
96-
for (Map.Entry<String, Object> entry : updateMap.entrySet()) {
96+
for (Map.Entry<String, String> entry : updateMap.entrySet()) {
9797
String lowercaseKey = entry.getKey().toLowerCase();
9898
if (!lowercaseHeaders.containsKey(lowercaseKey)) {
9999
headers.put(entry.getKey(), (String)entry.getValue());

src/main/java/com/networknt/aws/lambda/handler/middleware/header/RequestHeaderMiddleware.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import com.networknt.aws.lambda.handler.MiddlewareHandler;
55
import com.networknt.aws.lambda.LightLambdaExchange;
66
import com.networknt.header.HeaderConfig;
7+
import com.networknt.header.HeaderPathPrefixConfig;
8+
import com.networknt.header.HeaderRequestConfig;
79
import com.networknt.status.Status;
810
import org.slf4j.Logger;
911
import org.slf4j.LoggerFactory;
@@ -47,28 +49,28 @@ public Status execute(final LightLambdaExchange exchange) {
4749
if(LOG.isTraceEnabled()) LOG.trace("Request header removeList found.");
4850
removeHeaders(removeList, requestHeaders);
4951
}
50-
Map<String, Object> updateMap = CONFIG.getRequestUpdateMap();
52+
Map<String, String> updateMap = CONFIG.getRequestUpdateMap();
5153
if(updateMap != null) {
5254
if(LOG.isTraceEnabled()) LOG.trace("Request header updateMap found.");
5355
updateHeaders(updateMap, requestHeaders);
5456
}
5557

5658
// handle per path prefix header if configured
57-
Map<String, Object> pathPrefixHeader = CONFIG.getPathPrefixHeader();
59+
Map<String, HeaderPathPrefixConfig> pathPrefixHeader = CONFIG.getPathPrefixHeader();
5860
if(pathPrefixHeader != null) {
5961
String path = exchange.getRequest().getPath();
60-
for (Map.Entry<String, Object> entry : pathPrefixHeader.entrySet()) {
62+
for (Map.Entry<String, HeaderPathPrefixConfig> entry : pathPrefixHeader.entrySet()) {
6163
if(path.startsWith(entry.getKey())) {
62-
if(LOG.isTraceEnabled()) LOG.trace("Found path " + path + " with prefix " + entry.getKey());
63-
Map<String, Object> valueMap = (Map<String, Object>)entry.getValue();
64-
Map<String, Object> requestHeaderMap = (Map<String, Object>)valueMap.get(HeaderConfig.REQUEST);
65-
if(requestHeaderMap != null) {
66-
List<String> requestHeaderRemoveList = (List<String>)requestHeaderMap.get(HeaderConfig.REMOVE);
64+
if(LOG.isTraceEnabled()) LOG.trace("Found path {} with prefix {}", path, entry.getKey());
65+
HeaderPathPrefixConfig headerPathPrefixConfig = entry.getValue();
66+
HeaderRequestConfig headerRequestConfig = headerPathPrefixConfig.getRequest();
67+
if(headerRequestConfig != null) {
68+
List<String> requestHeaderRemoveList = headerRequestConfig.getRemove();
6769
if(requestHeaderRemoveList != null) {
6870
if(LOG.isTraceEnabled()) LOG.trace("Request header path prefix removeList found.");
6971
removeHeaders(requestHeaderRemoveList, requestHeaders);
7072
}
71-
Map<String, Object> requestHeaderUpdateMap = (Map<String, Object>)requestHeaderMap.get(HeaderConfig.UPDATE);
73+
Map<String, String> requestHeaderUpdateMap = headerRequestConfig.getUpdate();
7274
if(requestHeaderUpdateMap != null) {
7375
if(LOG.isTraceEnabled()) LOG.trace("Request header path prefix updateMap found.");
7476
updateHeaders(requestHeaderUpdateMap, requestHeaders);

src/main/java/com/networknt/aws/lambda/handler/middleware/header/ResponseHeaderMiddleware.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import com.networknt.aws.lambda.LightLambdaExchange;
55
import com.networknt.aws.lambda.handler.MiddlewareHandler;
66
import com.networknt.header.HeaderConfig;
7+
import com.networknt.header.HeaderPathPrefixConfig;
8+
import com.networknt.header.HeaderRequestConfig;
9+
import com.networknt.header.HeaderResponseConfig;
710
import com.networknt.status.Status;
811
import org.slf4j.Logger;
912
import org.slf4j.LoggerFactory;
@@ -51,27 +54,27 @@ public Status execute(LightLambdaExchange exchange) {
5154
if(LOG.isTraceEnabled()) LOG.trace("Response header removeList found.");
5255
removeHeaders(removeList, responseHeaders);
5356
}
54-
Map<String, Object> updateMap = CONFIG.getResponseUpdateMap();
57+
Map<String, String> updateMap = CONFIG.getResponseUpdateMap();
5558
if(updateMap != null) {
5659
if(LOG.isTraceEnabled()) LOG.trace("Response header updateMap found.");
5760
updateHeaders(updateMap, responseHeaders);
5861
}
5962
// handle per path prefix header if configured
60-
Map<String, Object> pathPrefixHeader = CONFIG.getPathPrefixHeader();
63+
Map<String, HeaderPathPrefixConfig> pathPrefixHeader = CONFIG.getPathPrefixHeader();
6164
if(pathPrefixHeader != null) {
6265
String path = exchange.getReadOnlyRequest().getPath();
63-
for (Map.Entry<String, Object> entry : pathPrefixHeader.entrySet()) {
66+
for (Map.Entry<String, HeaderPathPrefixConfig> entry : pathPrefixHeader.entrySet()) {
6467
if(path.startsWith(entry.getKey())) {
6568
if(LOG.isTraceEnabled()) LOG.trace("Found path {} with prefix {}", path, entry.getKey());
66-
Map<String, Object> valueMap = (Map<String, Object>)entry.getValue();
67-
Map<String, Object> responseHeaderMap = (Map<String, Object>)valueMap.get(HeaderConfig.RESPONSE);
68-
if(responseHeaderMap != null) {
69-
List<String> responseHeaderRemoveList = (List<String>)responseHeaderMap.get(HeaderConfig.REMOVE);
69+
HeaderPathPrefixConfig headerPathPrefixConfig = entry.getValue();
70+
HeaderResponseConfig headerResponseConfig = headerPathPrefixConfig.getResponse();
71+
if(headerResponseConfig != null) {
72+
List<String> responseHeaderRemoveList = headerResponseConfig.getRemove();
7073
if(responseHeaderRemoveList != null) {
7174
if(LOG.isTraceEnabled()) LOG.trace("Response header path prefix removeList found.");
7275
removeHeaders(responseHeaderRemoveList, responseHeaders);
7376
}
74-
Map<String, Object> responseHeaderUpdateMap = (Map<String, Object>)responseHeaderMap.get(HeaderConfig.UPDATE);
77+
Map<String, String> responseHeaderUpdateMap = headerResponseConfig.getUpdate();
7578
if(responseHeaderUpdateMap != null) {
7679
if(LOG.isTraceEnabled()) LOG.trace("Response header path prefix updateMap found.");
7780
updateHeaders(responseHeaderUpdateMap, responseHeaders);

0 commit comments

Comments
 (0)