|
|
@@ -137,20 +137,22 @@ class SqlAlchemyApi(Api):
|
|
|
return ENGINES[engine_key]
|
|
|
|
|
|
def _create_engine(self):
|
|
|
- if '${' in self.options['url']: # URL parameters substitution
|
|
|
- auth_provided = False
|
|
|
+ if '${' in self.options['url']: # URL parameters substitution
|
|
|
vars = {'USER': self.user.username}
|
|
|
- if 'session' in self.options:
|
|
|
- for _prop in self.options['session']['properties']:
|
|
|
- if _prop['name'] == 'user':
|
|
|
- vars['USER'] = _prop['value']
|
|
|
- auth_provided = True
|
|
|
- if _prop['name'] == 'password':
|
|
|
- vars['PASSWORD'] = _prop['value']
|
|
|
- auth_provided = True
|
|
|
-
|
|
|
- if not auth_provided:
|
|
|
- raise AuthenticationRequired(message='Missing username and/or password')
|
|
|
+
|
|
|
+ if '${PASSWORD}' in self.options['url']:
|
|
|
+ auth_provided = False
|
|
|
+ if 'session' in self.options:
|
|
|
+ for _prop in self.options['session']['properties']:
|
|
|
+ if _prop['name'] == 'user':
|
|
|
+ vars['USER'] = _prop['value']
|
|
|
+ auth_provided = True
|
|
|
+ if _prop['name'] == 'password':
|
|
|
+ vars['PASSWORD'] = _prop['value']
|
|
|
+ auth_provided = True
|
|
|
+
|
|
|
+ if not auth_provided:
|
|
|
+ raise AuthenticationRequired(message='Missing username and/or password')
|
|
|
|
|
|
raw_url = Template(self.options['url'])
|
|
|
url = raw_url.safe_substitute(**vars)
|