Skip to content

Commit

Permalink
#1239 - ActiveWeb: Add a convenience method for working with request …
Browse files Browse the repository at this point in the history
…headers
  • Loading branch information
ipolevoy committed Dec 13, 2022
1 parent d36f577 commit d1b6bb9
Showing 1 changed file with 34 additions and 2 deletions.
36 changes: 34 additions & 2 deletions activeweb/src/main/java/org/javalite/activeweb/RequestAccess.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.javalite.activeweb;

import org.javalite.common.Inflector;
import org.javalite.common.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -585,15 +586,46 @@ default String remoteAddress(){


/**
* Returns a request header by name.
* Returns a request header by name verbatim, without trying to manipulate the header name.
*
* @param name name of header
* @return header value.
* @return header value or null.
*/
default String header(String name){
return RequestContext.getHttpRequest().getHeader(name);
}

/**
* Convenience method to test if a header exists. Uses {@link #getHeader(String)}} internally.
* @param header header to check.
* @return true if the header exists, false if not.
*/
default boolean hasHeader(String header) {
return getHeader(header) != null;
}

/**
* Tries various case permutations of the header name. Example: the header "Authorization"
* will be tried as "authorization", "Authorization" and "AUTHORIZATION" before returning a result.
*
* @param header header name
* @return header value if found.
*/
default String getHeader(String header) {
String headerVal = header(Inflector.capitalize(header));
if(!Util.blank(headerVal)){
return headerVal;
}else {
String headerUpperVal = header(header.toUpperCase());
String headerLowerVal = header(header.toLowerCase());
if (!Util.blank(headerLowerVal)) {
return headerVal;
} else if (!Util.blank(headerUpperVal)) {
return headerUpperVal;
}
}
return null;
}
/**
* Returns all headers from a request keyed by header name.
*
Expand Down

0 comments on commit d1b6bb9

Please sign in to comment.