平台层转发 API Key 前去掉首尾空白
- server-rs/crates/platform-tripo/src/common/config.rs:client_options 里 api_key 先 trim 再交给 SDK,校验口径与发送口径统一,带空白的密钥不再变成 provider 侧的 401 - server-rs/crates/platform-tripo/src/common/config.rs:补用例锁住 client_options 发送的 api_key 已 trim
This commit is contained in:
@@ -98,7 +98,9 @@ impl TripoSettings {
|
||||
|
||||
pub(crate) fn client_options(&self) -> ClientOptions {
|
||||
ClientOptions {
|
||||
api_key: Some(self.api_key.clone()),
|
||||
// 校验用的是 trim 后的值,发出去的也必须是 trim 后的值:密钥被复制时带上
|
||||
// 首尾空白,就会在 provider 那边变成一个看不懂的 401。
|
||||
api_key: Some(self.api_key.trim().to_string()),
|
||||
base_url: Some(self.base_url.clone()),
|
||||
timeout: Some(self.request_timeout),
|
||||
retries: Some(self.retries),
|
||||
@@ -182,4 +184,12 @@ mod tests {
|
||||
.expect("合法配置必须构造成功");
|
||||
assert_eq!(settings.request_timeout, Duration::from_secs(5));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn client_options_trim_credentials_that_validation_trimmed() {
|
||||
let options =
|
||||
settings(Duration::from_secs(1), " key ", "https://example.com").client_options();
|
||||
|
||||
assert_eq!(options.api_key.as_deref(), Some("key"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user