MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / rewrite_header_value

Method rewrite_header_value

crates/openshell-core/src/secrets.rs:262–302  ·  view source on GitHub ↗
(
        &self,
        value: &str,
    )

Source from the content-addressed store, hash-verified

260 }
261
262 pub fn rewrite_header_value(
263 &self,
264 value: &str,
265 ) -> Result<Option<String>, UnresolvedPlaceholderError> {
266 // Direct placeholder match: `x-api-key: openshell:resolve:env:KEY`
267 if let Some(secret) = self.resolve_placeholder(value.trim()) {
268 return Ok(Some(secret.to_string()));
269 }
270
271 let trimmed = value.trim();
272
273 // Basic auth decoding: `Basic <base64>` where the decoded content
274 // contains a placeholder (e.g. `user:openshell:resolve:env:PASS`).
275 if let Some(encoded) = trimmed
276 .strip_prefix("Basic ")
277 .or_else(|| trimmed.strip_prefix("basic "))
278 .map(str::trim)
279 && let Some(rewritten) = self.rewrite_basic_auth_token(encoded)?
280 {
281 return Ok(Some(format!("Basic {rewritten}")));
282 }
283
284 // Prefixed placeholder: `Bearer openshell:resolve:env:KEY`
285 let Some(split_at) = trimmed.find(char::is_whitespace) else {
286 if contains_reserved_credential_marker(trimmed) {
287 return Err(UnresolvedPlaceholderError { location: "header" });
288 }
289 return Ok(None);
290 };
291 let prefix = &trimmed[..split_at];
292 let candidate = trimmed[split_at..].trim();
293 if let Some(secret) = self.resolve_placeholder(candidate) {
294 return Ok(Some(format!("{prefix} {secret}")));
295 }
296
297 if contains_reserved_credential_marker(candidate) {
298 return Err(UnresolvedPlaceholderError { location: "header" });
299 }
300
301 Ok(None)
302 }
303
304 pub fn rewrite_text_placeholders(
305 &self,

Callers 1

Tested by

no test coverage detected