Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0.BETA
-
Fix Version/s: 4.0
-
Component/s: JavaScript Client
-
Labels:None
-
Environment:ICEpush, nginx
-
Workaround Exists:Yes
-
Workaround Description:
Description
ICEpush makes use of a number of HTTP headers. These values should be passed as parameters in the body of the HTTP request:
ice.push.heartbeatTimestamp: 1401307088848
ice.notifyBack: apns:f7353
ice.push.browser: 1hvr1j5ar
ice.push.sequence: 130
ice.parkids: true
ice.push.window: fe4f7
(In some cases these are passed as body parameters, but the use of headers should be avoided.)
ice.push.heartbeatTimestamp: 1401307088848
ice.notifyBack: apns:f7353
ice.push.browser: 1hvr1j5ar
ice.push.sequence: 130
ice.parkids: true
ice.push.window: fe4f7
(In some cases these are passed as body parameters, but the use of headers should be avoided.)
Additional configuration for nginx was required since it rejects the "invalid" . separator in the ICEpush headers. This can be addressed by adding as described in the workaround.
ignore_invalid_headers off;
According to RFC 2068 an HTTP header name is a "token" http://tools.ietf.org/html/rfc2068
token = 1*<any CHAR except CTLs or tspecials>
tspecials = "(" | ")" | "<" | ">" | "@"
"
which allows the "." character, but it is apparently uncommon enough to be rejected by nginx.