Android WebSocket: include cookies with request
Summary: This commit brings Android in line with iOS WebSockets by sending along cookies from the shared CookieManager. See: https://github.com/facebook/react-native/pull/5630 Closes https://github.com/facebook/react-native/pull/6067 Differential Revision: D3841122 Pulled By: mkonicek fbshipit-source-id: 6607424feeb31c9da4e370ebe4b33dbbedc0a446
This commit is contained in:
parent
74c32e2609
commit
04392f2428
|
@ -9,7 +9,9 @@
|
||||||
|
|
||||||
package com.facebook.react.modules.websocket;
|
package com.facebook.react.modules.websocket;
|
||||||
|
|
||||||
|
import android.net.Uri;
|
||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
|
import android.webkit.CookieManager;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.IllegalStateException;
|
import java.lang.IllegalStateException;
|
||||||
|
@ -87,6 +89,27 @@ public class WebSocketModule extends ReactContextBaseJavaModule {
|
||||||
.tag(id)
|
.tag(id)
|
||||||
.url(url);
|
.url(url);
|
||||||
|
|
||||||
|
if (url != null) {
|
||||||
|
// Use the shared CookieManager to access the cookies
|
||||||
|
// set by WebViews inside the same app
|
||||||
|
CookieManager cookieManager = CookieManager.getInstance();
|
||||||
|
|
||||||
|
Uri parsedUrl = Uri.parse(url);
|
||||||
|
Uri.Builder builtUrl = parsedUrl.buildUpon();
|
||||||
|
|
||||||
|
// To get HTTPS-only cookies for wss URLs,
|
||||||
|
// replace wss with http in the URL.
|
||||||
|
if (parsedUrl.getScheme().equals("wss")) {
|
||||||
|
builtUrl.scheme("https");
|
||||||
|
}
|
||||||
|
|
||||||
|
String cookie = cookieManager.getCookie(builtUrl.build().toString());
|
||||||
|
|
||||||
|
if (cookie != null) {
|
||||||
|
builder.addHeader("Cookie", cookie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (headers != null) {
|
if (headers != null) {
|
||||||
ReadableMapKeySetIterator iterator = headers.keySetIterator();
|
ReadableMapKeySetIterator iterator = headers.keySetIterator();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue