瀏覽代碼

Fix crash on URLAuthenticationChallenge #982

Marino Faggiana 7 年之前
父節點
當前提交
8c764da793
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      iOSClient/Library/SwiftWebVC/SwiftWebVC.swift

+ 7 - 1
iOSClient/Library/SwiftWebVC/SwiftWebVC.swift

@@ -358,7 +358,13 @@ extension SwiftWebVC: WKNavigationDelegate {
     
     public func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
         
-        completionHandler(Foundation.URLSession.AuthChallengeDisposition.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!))
+        if challenge.previousFailureCount > 0 {
+            completionHandler(Foundation.URLSession.AuthChallengeDisposition.cancelAuthenticationChallenge, nil)
+        } else if let serverTrust = challenge.protectionSpace.serverTrust {
+            completionHandler(Foundation.URLSession.AuthChallengeDisposition.useCredential, URLCredential(trust: serverTrust))
+        } else {
+            print("unknown state. error: \(String(describing: challenge.error))")
+        }
     }
 
 }