mirror of
https://github.com/Schrolli91/BOSWatch.git
synced 2025-12-06 07:42:03 +01:00
Merge pull request #404 from CJHarms/ff-agent-fixes
FF Agent Fixes - Header Ordering
This commit is contained in:
commit
5663bea32f
|
|
@ -1,10 +1,12 @@
|
|||
# Changelog
|
||||
|
||||
|
||||
### __[v#.#]__ - date
|
||||
##### Added
|
||||
- Telegram-Plugin: In der generierten Übersichtkarte wird eine Anfahrtsroute integriert. Der Abfahrtsort ist konfiguierbar. [#382](https://github.com/Schrolli91/BOSWatch/pull/382)
|
||||
- Hue-Plugin: Geräte die mit einer Hue bridge verbunden sind können aus BOSWatch ein- und ausgeschaltet werden. [#394](https://github.com/Schrolli91/BOSWatch/issues/394)
|
||||
##### Changed
|
||||
- FFAgent Plugin: zusätzliches OrderedDict "alarmHeadersOrdered" implementiert um das HTTP Header Ordering sicherzustellen. Zusätzlich den HTTP Request mittels Session implementiert um das Header Ordering zu bewahren. Zusätzliches Debug Logging für die Header implementiert. [#356] (https://github.com/Schrolli91/BOSWatch/issues/356)
|
||||
##### Deprecated
|
||||
##### Removed
|
||||
##### Fixed
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ versionNr = "2.4.3"
|
|||
branch = "dev"
|
||||
buildDate = "unreleased"
|
||||
|
||||
|
||||
# Global variables
|
||||
config = 0
|
||||
script_path = ""
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ import logging # Global logger
|
|||
import hmac, hashlib
|
||||
import json, requests
|
||||
|
||||
from collections import OrderedDict
|
||||
|
||||
from includes import globalVars # Global variables
|
||||
|
||||
#from includes.helper import timeHandler
|
||||
|
|
@ -123,8 +125,9 @@ def run(typ,freq,data):
|
|||
}
|
||||
|
||||
alarmData = json.dumps(alarmData)
|
||||
|
||||
logging.debug(alarmData)
|
||||
|
||||
|
||||
alarmHeaders = {
|
||||
"Content-Type": "application/json",
|
||||
"webApiToken": webApiToken,
|
||||
|
|
@ -132,12 +135,30 @@ def run(typ,freq,data):
|
|||
"selectiveCallCode": selectiveCallCode,
|
||||
"hmac": hmac.new(webApiKey, webApiToken + selectiveCallCode + accessToken + alarmData, digestmod=hashlib.sha256).hexdigest()
|
||||
}
|
||||
|
||||
logging.debug(alarmHeaders)
|
||||
|
||||
alarmHeadersOrdered=OrderedDict()
|
||||
alarmHeadersOrdered['webApiToken']=webApiToken
|
||||
alarmHeadersOrdered['accessToken']=accessToken
|
||||
alarmHeadersOrdered['selectiveCallCode']=selectiveCallCode
|
||||
alarmHeadersOrdered['hmac']=hmac.new(webApiKey, webApiToken + selectiveCallCode + accessToken + alarmData, digestmod=hashlib.sha256).hexdigest()
|
||||
|
||||
logging.debug(alarmHeadersOrdered)
|
||||
|
||||
if globalVars.config.get("FFAgent", "live") == "1":
|
||||
r = requests.post(url, data=alarmData, headers=alarmHeaders, verify=serverCertFile, cert=(clientCertFile, clientCertPass))
|
||||
s = requests.Session()
|
||||
s.headers = OrderedDict([('Content-Type', 'application/json')])
|
||||
logging.debug(s.headers)
|
||||
r = s.post(url, data=alarmData, headers=alarmHeadersOrdered, verify=serverCertFile, cert=(clientCertFile, clientCertPass))
|
||||
|
||||
else:
|
||||
r = requests.post(url, data=alarmData, headers=alarmHeaders, verify=serverCertFile)
|
||||
s = requests.Session()
|
||||
s.headers = OrderedDict([('Content-Type', 'application/json')])
|
||||
logging.debug(s.headers)
|
||||
r = s.post(url, data=alarmData, headers=alarmHeadersOrdered, verify=serverCertFile)
|
||||
|
||||
logging.debug(r.request.headers)
|
||||
|
||||
except:
|
||||
logging.error("cannot send FFAgent request")
|
||||
|
|
|
|||
Loading…
Reference in a new issue