in proxy_agent/src/proxy/proxy_authorizer.rs [257:328]
fn get_authenticate_test() {
let claims = crate::proxy::Claims {
userId: 0,
userName: "test".to_string(),
userGroups: vec!["test".to_string()],
processId: std::process::id(),
processName: OsString::from("test"),
processFullPath: PathBuf::from("test"),
processCmdLine: "test".to_string(),
runAsElevated: true,
clientIp: "127.0.0.1".to_string(),
clientPort: 0, // doesn't matter for this test
};
let mut test_logger = ConnectionLogger::new(0, 0);
let auth: Box<dyn super::Authorizer> = super::get_authorizer(
crate::common::constants::WIRE_SERVER_IP.to_string(),
crate::common::constants::WIRE_SERVER_PORT,
claims.clone(),
);
let test_uri = hyper::Uri::from_str("test").unwrap();
assert_eq!(
auth.to_string(),
"WireServer { runAsElevated: true, processName: test }"
);
assert!(
AuthorizeResult::Ok == auth.authorize(&mut test_logger, test_uri.clone(), None),
"WireServer authentication must be Ok"
);
let auth = super::get_authorizer(
crate::common::constants::GA_PLUGIN_IP.to_string(),
crate::common::constants::GA_PLUGIN_PORT,
claims.clone(),
);
assert_eq!(
auth.to_string(),
"GAPlugin { runAsElevated: true, processName: test }"
);
assert!(
AuthorizeResult::Ok == auth.authorize(&mut test_logger, test_uri.clone(), None),
"GAPlugin authentication must be Ok"
);
let auth = super::get_authorizer(
crate::common::constants::IMDS_IP.to_string(),
crate::common::constants::IMDS_PORT,
claims.clone(),
);
assert_eq!(auth.to_string(), "IMDS");
assert!(
AuthorizeResult::Ok == auth.authorize(&mut test_logger, test_uri.clone(), None),
"IMDS authentication must be Ok"
);
let auth = super::get_authorizer(
crate::common::constants::PROXY_AGENT_IP.to_string(),
crate::common::constants::PROXY_AGENT_PORT,
claims.clone(),
);
assert_eq!(auth.to_string(), "ProxyAgent");
assert!(
AuthorizeResult::Forbidden == auth.authorize(&mut test_logger, test_uri.clone(), None),
"ProxyAgent authentication must be Forbidden"
);
let auth = super::get_authorizer(
crate::common::constants::PROXY_AGENT_IP.to_string(),
crate::common::constants::PROXY_AGENT_PORT + 1,
claims.clone(),
);
assert_eq!(auth.to_string(), "Default");
}