def test_success_defaults(self): jwt_secret = 'unittests' os.environ['CTERA_FILER_JWT_SECRET'] = jwt_secret config = Config.instance() self.assertEqual(config.hostname, '127.0.0.1') self.assertEqual(config.jwt_secret, jwt_secret) self.assertEqual(config.trust_ssl, 'Consent')
def test_decode_token(self): os.environ['CTERA_FILER_JWT_SECRET'] = 'unittests' session_id = str(uuid.uuid4()) token = jwt.encode({'payload': session_id}, Config.instance().jwt_secret, algorithm=tokenizer.JWT_ALGORITHM) decoded_token = tokenizer.decode_token(token) self.assertEqual(session_id, decoded_token['payload'])
def test_create_token(self): os.environ['CTERA_FILER_JWT_SECRET'] = 'unittests' session_id = str(uuid.uuid4()) token = tokenizer.create_token(session_id) decoded_token = jwt.decode(token, Config.instance().jwt_secret, algorithms=[tokenizer.JWT_ALGORITHM]) self.assertEqual(session_id, decoded_token['sub'])
def test_success_from_env(self): jwt_secret = 'unittests' hostname = '192.168.1.1' trust = 'Trust' os.environ['CTERA_FILER_JWT_SECRET'] = jwt_secret os.environ['CTERA_FILER_ADDRESS'] = hostname os.environ['CTERA_FILER_TRUST_SSL'] = trust config = Config.instance() self.assertEqual(config.hostname, hostname) self.assertEqual(config.jwt_secret, jwt_secret) self.assertEqual(config.trust_ssl, trust)
def create_token(session_id): timestamp = _current_timestamp() payload = { "iss": JWT_ISSUER, "iat": int(timestamp), "exp": int(timestamp + JWT_LIFETIME_SECONDS), "sub": str(session_id), } return jwt.encode(payload, Config.instance().jwt_secret, algorithm=JWT_ALGORITHM)
def __init__(self, session_id=None): self._gateway = Gateway(Config.instance().hostname, https=True) if session_id: self._gateway.set_session_id(session_id)
import logging import connexion from connexion.resolver import RestyResolver from cterasdk import config import urllib3 from ctera_gateway_openapi.common.config import Config logging.basicConfig(level=logging.DEBUG) config.http['ssl'] = Config.instance().trust_ssl if config.http['ssl'] == 'Trust': urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) app = connexion.FlaskApp(__name__) app.add_api('api.yml', resolver=RestyResolver('ctera_gateway_openapi.api')) application = app.app # expose global WSGI application object
def setUp(self) -> None: super().setUp() Config.clear()
def test_failure_second_init(self): jwt_secret = 'unittests' os.environ['CTERA_FILER_JWT_SECRET'] = jwt_secret Config.instance() with self.assertRaises(Exception): Config()
def decode_token(token): return jwt.decode(token, Config.instance().jwt_secret, algorithms=[JWT_ALGORITHM])