@@ -28,7 +28,7 @@ def read(id=False): # GET
2828
2929 # provider['http']['middlewares']['chain']={"chain":{"middlewares":["redirect", "strip"]} }
3030 # provider['http']['middlewares']['redirect']={"redirectregex":{"regex":"^(https?://[^/]+/[a-z0-9_]+)$", "replacement":"${1}/"} }
31- provider ['http' ]['middlewares' ]['strip' ] = {"stripprefixregex " :{"regex" :"/[a-z0-9_]+" } }
31+ provider ['http' ]['middlewares' ]['strip' ] = {"stripPrefixRegex " :{"regex" :"/[a-z0-9_]+" } }
3232
3333 mode_data = json .loads ((requests .get ('http://localhost:8080/plugins/mode/visitor_mode' )).text )
3434 screen_data = json .loads ((requests .get ('http://localhost:8080/plugins/screens/manage_screen' )).text )
@@ -43,17 +43,24 @@ def read(id=False): # GET
4343 screen_host = re .match ("^(https?://[^/]+)/(.*)$" , screen ['url' ]).groups ()[0 ]
4444 screen_path = re .match ("^(https?://[^/]+)/(.*)$" , screen ['url' ]).groups ()[1 ]
4545
46- provider ['http' ]['routers' ]['router_' + screen ['id' ]] = {'entryPoints' :['web' , 'websecure' ], 'service' :'service_' + screen ['id' ], 'rule' :'HOST(`' + screen ['id' ]+ '.' + os .environ ["SSP_DOMAIN" ]+ '`)' , 'middlewares' :['redirect_' + screen ['id' ], 'header_' + screen ['id' ]], 'tls' :{'certResolver' :'myresolver' }}
46+ provider ['http' ]['routers' ]['router_' + screen ['id' ]] = {'entryPoints' :['web' , 'websecure' ], 'service' :'service_' + screen ['id' ], 'rule' :'HOST(`' + screen ['id' ]+ '.' + os .environ ["SSP_DOMAIN" ]+ '`)' , 'middlewares' :['redirect_' + screen ['id' ]], 'tls' :{'certResolver' :'myresolver' }}
47+
4748 provider ['http' ]['services' ]['service_' + screen ['id' ]] = {"loadBalancer" :{"servers" :[{'url' :screen_host }], "passHostHeader" : False } }
48- provider ['http' ]['middlewares' ]['redirect_' + screen ['id' ]] = {"redirectregex " :{"regex" :"^(https?://[^/]+/?)$" , "replacement" :"${1}" + screen_path } }
49+ provider ['http' ]['middlewares' ]['redirect_' + screen ['id' ]] = {"redirectRegex " :{"regex" :"^(https?://[^/]+/?)$" , "replacement" :"${1}" + screen_path } }
4950
5051 upstream_headers = {}
51- try :
52- upstream_headers = json .loads (screen ['headers' ])
53- except :
54- pass
52+ raw_headers = screen .get ('headers' , '' )
53+ if isinstance (raw_headers , str ) and raw_headers .strip ():
54+ try :
55+ parsed = json .loads (raw_headers )
56+ if isinstance (parsed , dict ):
57+ upstream_headers = {str (k ): str (v ) for k , v in parsed .items () if v is not None }
58+ except Exception :
59+ pass
5560
56- provider ['http' ]['middlewares' ]['header_' + screen ['id' ]] = {"headers" : {"customRequestHeaders" : upstream_headers } }
61+ if upstream_headers :
62+ provider ['http' ]['routers' ]['router_' + screen ['id' ]]['middlewares' ].append ('header_' + screen ['id' ])
63+ provider ['http' ]['middlewares' ]['header_' + screen ['id' ]] = {"headers" : {"customRequestHeaders" : upstream_headers } }
5764 except :
5865 print ("error parsing URL" )
5966
0 commit comments