gpt4 book ai didi

swift - 在 Alamofire 4 中动态允许自签名证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:10 25 4
gpt4 key购买 nike

我在 Swift 3 中使用 Alamofire 4 来构建一个应用程序,以将数据放入 MDM 服务器的 API 以进行大规模更新。

一些用户为其本地托管服务器使用内置 CA 或自签名 SSL 证书,如果该证书未下载并安装到钥匙串(keychain),Alamofire 将不允许通信。

我找到了自述文件的安全部分,并在其中编写了以下代码:

    private static var Manager: Alamofire.SessionManager = {

// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"my.on-prem-server.com": .disableEvaluation
]

// Create custom manager
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
let manager = Alamofire.SessionManager(
configuration: URLSessionConfiguration.default,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)

return manager
}()

问题是我不是唯一使用它的人,而且我无法在其中静态设置每个人的服务器信息。不是每个人的服务器都会是“my.on-prem-server.com”

我有一个名为“allowUntrustedURL”的字符串变量,它是从 viewWillAppear() 上的委托(delegate)填充的(他们在不同的 View 中输入他们的服务器信息),但是当我尝试

let serverTrustPolicies: [String: ServerTrustPolicy] = [
allowUntrustedURL: .disableEvaluation
]

我收到以下错误:Instance member 'allowUntrustedURL' cannot be used on type 'myViewController'

所以我想我对选择持开放态度。我考虑过要求人们下载他们的 SSL 证书并将其安装到钥匙串(keychain)——但我想我宁愿有一个复选框来尽可能禁用该要求。

我可以使用一种方法来全局禁用 Alamofire 的受信任 SSL 要求(最好在选中一个框或允许不受信任的东西之后),或者一种传递变量的方法,我可以用它们的 URL 填充它们填写内容。

编辑:我还在 URL 中尝试了某种通配符,但我似乎无法使用任何通配符或全局许可。

最佳答案

尝试将 serverTrustPolicies 设为 var 并在类似 viewDidLoad 的方法中对其进行初始化。我认为您的问题是 serverTrustPolicies 在您尝试访问它时尚不可用。

关于swift - 在 Alamofire 4 中动态允许自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40515205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com