AlamoFire:public 键固定不起作用
AlamoFire: public key pinning not working
我正在使用共享实例创建会话管理器,如下所示:
class Session {
static let sharedInstance = Session()
private var manager : SessionManager?
func ApiManager()->SessionManager{
if let m = self.manager{
return m
}else{
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"https:api-cat.example.com": .pinPublicKeys(
publicKeys:savePublicKeys(),
validateCertificateChain:true,
validateHost:true
)]
self.manager = SessionManager(
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies))
return self.manager!
}
}}
其中 savePublicKeys
returns [SecKey]
.
即使在使用空 public 键数组设置新的 ServerTrustPolicy 后,我仍然能够成功调用并获取数据。
如果我在这里犯了任何错误,有什么想法吗?
你的 "https:api-cat.payeezy.com"
看起来很可疑。
删除 https:
部分或添加缺少的双斜杠 https://
。 ServerTrustPolicyManager
仅在其主机 属性 与请求的主机匹配时应用策略,如果不匹配,则使用 Apple 的标准行为(参见 Alamofire Documentation)。
我正在使用共享实例创建会话管理器,如下所示:
class Session {
static let sharedInstance = Session()
private var manager : SessionManager?
func ApiManager()->SessionManager{
if let m = self.manager{
return m
}else{
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"https:api-cat.example.com": .pinPublicKeys(
publicKeys:savePublicKeys(),
validateCertificateChain:true,
validateHost:true
)]
self.manager = SessionManager(
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies))
return self.manager!
}
}}
其中 savePublicKeys
returns [SecKey]
.
即使在使用空 public 键数组设置新的 ServerTrustPolicy 后,我仍然能够成功调用并获取数据。 如果我在这里犯了任何错误,有什么想法吗?
你的 "https:api-cat.payeezy.com"
看起来很可疑。
删除 https:
部分或添加缺少的双斜杠 https://
。 ServerTrustPolicyManager
仅在其主机 属性 与请求的主机匹配时应用策略,如果不匹配,则使用 Apple 的标准行为(参见 Alamofire Documentation)。