forked from mirrors/kingfisher
- Skip reporting MongoDB and Postgres findings when their connection strings cannot be parsed, even when validation is disabled.
- Improve MySQL detection by broadening URI coverage and adding live validation that skips clearly invalid connection strings.
This commit is contained in:
parent
f159dac5ab
commit
51ebf30454
2 changed files with 28 additions and 8 deletions
|
|
@ -5,8 +5,8 @@ rules:
|
|||
(?xi)
|
||||
(
|
||||
jdbc:
|
||||
[a-z][a-z0-9+.-]{2,30}
|
||||
(?:[:][a-z0-9+.-]{1,30})*
|
||||
[a-z][a-z0-9+.-]{2,32}
|
||||
(?:[:][a-z0-9+.-]{1,32})*
|
||||
:
|
||||
[^\s"'<>,(){}\[\]]{10,448}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -51,15 +51,20 @@ impl AuthConfig {
|
|||
bearer_token: Option<String>,
|
||||
) -> Self {
|
||||
fn normalized(value: Option<String>) -> Option<String> {
|
||||
value.and_then(|v| if v.trim().is_empty() { None } else { Some(v) })
|
||||
value.and_then(|v| {
|
||||
let trimmed = v.trim();
|
||||
if trimmed.is_empty() {
|
||||
None
|
||||
} else if trimmed.len() == v.len() {
|
||||
Some(v)
|
||||
} else {
|
||||
Some(trimmed.to_owned())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn env_var(name: &str) -> Option<String> {
|
||||
match env::var(name) {
|
||||
Ok(value) if value.trim().is_empty() => None,
|
||||
Ok(value) => Some(value),
|
||||
Err(_) => None,
|
||||
}
|
||||
normalized(env::var(name).ok())
|
||||
}
|
||||
|
||||
let username = normalized(username).or_else(|| env_var("KF_BITBUCKET_USERNAME"));
|
||||
|
|
@ -769,6 +774,21 @@ mod tests {
|
|||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn auth_config_trims_environment_whitespace() {
|
||||
temp_env::with_vars(
|
||||
&[
|
||||
("KF_BITBUCKET_USERNAME", Some(" user ")),
|
||||
("KF_BITBUCKET_APP_PASSWORD", Some(" pass\n")),
|
||||
],
|
||||
|| {
|
||||
let auth = AuthConfig::from_env();
|
||||
assert_eq!(auth.username.as_deref(), Some("user"));
|
||||
assert_eq!(auth.password.as_deref(), Some("pass"));
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn auth_config_treats_access_token_as_bearer() {
|
||||
let token = "AT1234567890_ACCESS_TOKEN_EXAMPLE_WITH_UNDERSCORE";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue