[英]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
返回[SecKey]
。
即使使用空的公共密鑰數組設置了新的ServerTrustPolicy之后,我仍然能夠成功調用並獲取數據。 如果我在這里犯了任何錯誤,有什么想法嗎?
您的"https:api-cat.payeezy.com"
看起來像魚。
刪除https:
-part或添加缺少的雙斜杠https://
。 ServerTrustPolicyManager
僅在其host屬性與請求的主機匹配時才應用策略,如果不匹配,則使用Apple的標准行為(請參閱Alamofire文檔 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.