Source code for clarin.sru.server.auth
from abc import ABCMeta
from abc import abstractmethod
from typing import Dict
from typing import Optional
from werkzeug import Request
# ---------------------------------------------------------------------------
[docs]class SRUAuthenticationInfo(metaclass=ABCMeta):
@property
@abstractmethod
def authentication_method(self) -> str:
pass
@property
@abstractmethod
def subject(self) -> str:
pass
# ---------------------------------------------------------------------------
[docs]class SRUAuthenticationInfoProvider(metaclass=ABCMeta):
[docs] @abstractmethod
def get_AuthenticationInfo(
self, request: Request
) -> Optional[SRUAuthenticationInfo]:
# TODO: create wrapper around werkzeug.Request to allow more backends
# TODO: or just use request headers as dict?
pass
# ---------------------------------------------------------------------------
[docs]class SRUAuthenticationInfoProviderFactory(metaclass=ABCMeta):
[docs] @abstractmethod
def create_SRUAuthenticationInfoProvider(
self, params: Dict[str, str]
) -> Optional[SRUAuthenticationInfoProvider]:
"""Create a authentication info provider."""
pass
# ---------------------------------------------------------------------------