Skip to content

Commit 0f46271

Browse files
CompuIvesluminitavoicu
authored andcommitted
MMDS: Add support for lowercased headers
Signed-off-by: Tomas Valenta <[email protected]> Co-authored-by: Ives van Hoorne <[email protected]>
1 parent 41a386b commit 0f46271

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/mmds/src/token_headers.rs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,19 @@ impl TokenHeaders {
3939
/// Return `TokenHeaders` from headers map.
4040
pub fn try_from(map: &HashMap<String, String>) -> Result<TokenHeaders, RequestError> {
4141
let mut headers = Self::default();
42+
let lowercased_headers: HashMap<String, String> = map
43+
.iter()
44+
.map(|(k, v)| (k.to_lowercase(), v.clone()))
45+
.collect();
4246

43-
if let Some(token) = map.get(TokenHeaders::X_METADATA_TOKEN) {
47+
if let Some(token) = lowercased_headers.get(&TokenHeaders::X_METADATA_TOKEN.to_lowercase())
48+
{
4449
headers.x_metadata_token = Some(token.to_string());
4550
}
4651

47-
if let Some(value) = map.get(TokenHeaders::X_METADATA_TOKEN_TTL_SECONDS) {
52+
if let Some(value) =
53+
lowercased_headers.get(&TokenHeaders::X_METADATA_TOKEN_TTL_SECONDS.to_lowercase())
54+
{
4855
match value.parse::<u32>() {
4956
Ok(seconds) => {
5057
headers.x_metadata_token_ttl_seconds = Some(seconds);
@@ -127,6 +134,17 @@ mod tests {
127134
let headers = TokenHeaders::try_from(&map).unwrap();
128135
assert_eq!(*headers.x_metadata_token().unwrap(), "".to_string());
129136

137+
// Lowercased headers
138+
let mut map: HashMap<String, String> = HashMap::default();
139+
map.insert(
140+
TokenHeaders::X_METADATA_TOKEN_TTL_SECONDS
141+
.to_string()
142+
.to_lowercase(),
143+
"60".to_string(),
144+
);
145+
let headers = TokenHeaders::try_from(&map).unwrap();
146+
assert_eq!(headers.x_metadata_token_ttl_seconds().unwrap(), 60);
147+
130148
// Invalid value.
131149
let mut map: HashMap<String, String> = HashMap::default();
132150
map.insert(

0 commit comments

Comments
 (0)