Skip to content

Commit 1a8c970

Browse files
authored
Override always default Android hostname verifier
This fixes the following problem: javax.net.ssl.SSLPeerUnverifiedException: Hostname WWW.XXX.YYY.ZZZ not verified: ... ... subjectAltNames: [] ; Zone: <root> ; Task: Promise.then ; Value: javax.net.ssl.SSLPeerUnverifiedException: Hostname WWW.XXX.YYY.ZZZ not verified:
1 parent 90c04b4 commit 1a8c970

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

https.android.ts

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -136,23 +136,22 @@ function getClient(reload: boolean = false): okhttp3.OkHttpClient {
136136
}
137137
}
138138

139-
if (peer.validatesDomainName == true) {
140-
try {
141-
client.hostnameVerifier(new javax.net.ssl.HostnameVerifier({
142-
verify: function(hostname: string, session: javax.net.ssl.ISSLSession): boolean {
143-
let pp = session.getPeerPrincipal().getName()
144-
let hv = javax.net.ssl.HttpsURLConnection.getDefaultHostnameVerifier()
145-
return (
146-
hv.verify(peer.host, session) &&
147-
peer.host == hostname &&
148-
peer.host == session.getPeerHost() &&
149-
pp.indexOf(peer.host) != -1
150-
)
151-
},
152-
}))
153-
} catch (error) {
154-
console.error('nativescript-https > client.validatesDomainName error', error)
155-
}
139+
try {
140+
client.hostnameVerifier(new javax.net.ssl.HostnameVerifier({
141+
verify: function(hostname: string, session: javax.net.ssl.ISSLSession): boolean {
142+
let pp = session.getPeerPrincipal().getName()
143+
let hv = javax.net.ssl.HttpsURLConnection.getDefaultHostnameVerifier()
144+
return (
145+
!peer.validatesDomainName ||
146+
hv.verify(peer.host, session) &&
147+
peer.host == hostname &&
148+
peer.host == session.getPeerHost() &&
149+
pp.indexOf(peer.host) != -1
150+
)
151+
},
152+
}))
153+
} catch (error) {
154+
console.error('nativescript-https > client.validatesDomainName error', error)
156155
}
157156

158157
} else {

0 commit comments

Comments
 (0)