Esempio n. 1
0
    def __init__(self, srv, ttl, symkey):
        UserAuthnMethod.__init__(self, srv, ttl)

        if symkey is not None and symkey == "":
            msg = "SymKeyAuthn.symkey cannot be an empty value"
            raise ImproperlyConfigured(msg)
        self.symkey = symkey
Esempio n. 2
0
    def __init__(
        self,
        base_url,
        db,
        refresh_db=None,
        refresh_token_expires_in=None,
        token_factory=None,
        code_factory=None,
        refresh_token_factory=None,
    ):
        """
        Object to store the session related information.

        :param db: Database for storing the session information.
        """
        if refresh_token_expires_in is not None:
            warnings.warn(
                "Setting a `refresh_token_expires_in` has no effect, please set the expiration on "
                "`refresh_token_factory`.",
                DeprecationWarning,
            )
        self.base_url = base_url
        if not isinstance(db, SessionBackend):
            warnings.warn(
                "Please use `SessionBackend` to ensure proper API for the database.",
                DeprecationWarning,
            )
        self._db = db

        self.token_factory = {
            "code": code_factory,
            "access_token": token_factory
        }

        self.token_factory_order = ["code", "access_token"]

        # TODO: This should simply be a factory like all the others too,
        #       even for the default case.

        if refresh_token_factory:
            if refresh_db:
                raise ImproperlyConfigured(
                    "Only use one of refresh_db or refresh_token_factory")
            self._refresh_db = None
            self.token_factory["refresh_token"] = refresh_token_factory
            self.token_factory_order.append("refresh_token")
        elif refresh_db:
            warnings.warn(
                "Using `refresh_db` is deprecated, please use `refresh_token_factory`",
                DeprecationWarning,
                stacklevel=2,
            )
            self._refresh_db = refresh_db
        else:
            # Not configured
            self._refresh_db = None
            self.token_factory["refresh_token"] = None

        self.access_token = self.token_factory["access_token"]
        self.token = self.access_token
Esempio n. 3
0
 def __init__(self, typ, lifetime=0, token_storage=None, **kwargs):
     self.type = typ
     self.lifetime = lifetime
     self.args = kwargs
     if typ == "R":
         if token_storage is None:
             raise ImproperlyConfigured(
                 "token_storage kwarg must be passed in for refresh token.")
     self.token_storage = token_storage
Esempio n. 4
0
    def init_srv(self, srv):
        if not srv:
            return
        self.srv = srv

        symkey = getattr(self.srv, "symkey", None)
        if symkey is not None and symkey == "":
            msg = "CookieDealer.srv.symkey cannot be an empty value"
            raise ImproperlyConfigured(msg)

        if not getattr(srv, "seed", None):
            setattr(srv, "seed", rndstr().encode("utf-8"))
Esempio n. 5
0
    def __init__(
        self,
        base_url,
        db,
        refresh_db=None,
        refresh_token_expires_in=86400,
        token_factory=None,
        code_factory=None,
        refresh_token_factory=None,
    ):
        """
        Object to store the session related information.

        :param db: Database for storing the session information.
        """
        self.base_url = base_url
        if not isinstance(db, SessionBackend):
            warnings.warn(
                "Please use `SessionBackend` to ensure proper API for the database.",
                DeprecationWarning,
            )
        self._db = db

        self.token_factory = {
            "code": code_factory,
            "access_token": token_factory
        }

        self.token_factory_order = ["code", "access_token"]

        # TODO: This should simply be a factory like all the others too,
        #       even for the default case.

        if refresh_token_factory:
            if refresh_db:
                raise ImproperlyConfigured(
                    "Only use one of refresh_db or refresh_token_factory")
            self._refresh_db = None
            self.token_factory["refresh_token"] = refresh_token_factory
            self.token_factory_order.append("refresh_token")
        elif refresh_db:
            self._refresh_db = refresh_db
        else:
            self._refresh_db = DictRefreshDB()

        self.access_token = self.token_factory["access_token"]
        self.token = self.access_token
Esempio n. 6
0
    def __init__(
        self,
        base_url,
        db,
        refresh_db=None,
        refresh_token_expires_in=86400,
        token_factory=None,
        code_factory=None,
        refresh_token_factory=None,
    ):

        self.base_url = base_url
        self._db = db

        # TODO: uid2sid should have a persistence option too.
        self.uid2sid = {}  # type: Dict[str, List[str]]

        self.token_factory = {
            "code": code_factory,
            "access_token": token_factory
        }

        self.token_factory_order = ["code", "access_token"]

        # TODO: This should simply be a factory like all the others too,
        #       even for the default case.

        if refresh_token_factory:
            if refresh_db:
                raise ImproperlyConfigured(
                    "Only use one of refresh_db or refresh_token_factory")
            self._refresh_db = None
            self.token_factory["refresh_token"] = refresh_token_factory
            self.token_factory_order.append("refresh_token")
        elif refresh_db:
            self._refresh_db = refresh_db
        else:
            self._refresh_db = DictRefreshDB()

        self.access_token = self.token_factory["access_token"]
        self.token = self.access_token
Esempio n. 7
0
    def __init__(self,
                 base_url,
                 db,
                 refresh_db=None,
                 refresh_token_expires_in=86400,
                 token_factory=None,
                 code_factory=None,
                 refresh_token_factory=None):

        self.base_url = base_url
        self._db = db

        # TODO: uid2sid should have a persistence option too.
        self.uid2sid = {}

        self.token_factory = {
            'code': code_factory,
            'access_token': token_factory,
        }

        self.token_factory_order = ['code', 'access_token']

        # TODO: This should simply be a factory like all the others too,
        #       even for the default case.

        if refresh_token_factory:
            if refresh_db:
                raise ImproperlyConfigured(
                    "Only use one of refresh_db or refresh_token_factory")
            self._refresh_db = None
            self.token_factory['refresh_token'] = refresh_token_factory
            self.token_factory_order.append('refresh_token')
        elif refresh_db:
            self._refresh_db = refresh_db
        else:
            self._refresh_db = DictRefreshDB()

        self.access_token = self.token_factory['access_token']
        self.token = self.access_token