Source code for nameko_keycloak.dependencies

import json
import logging
from pathlib import Path

from keycloak import KeycloakOpenID
from nameko.extensions import DependencyProvider

logger = logging.getLogger(__name__)


[docs] class KeycloakProvider(DependencyProvider): def __init__(self, keycloak_path: Path): self.keycloak_path = keycloak_path
[docs] def setup(self) -> None: config = json.loads(self.keycloak_path.read_text()) self.provider = KeycloakOpenID( server_url=config.get("auth-server-url"), client_id=config.get("resource"), realm_name=config.get("realm"), client_secret_key=config.get("credentials").get("secret"), verify=True, )
[docs] def get_dependency(self, worker_ctx) -> KeycloakOpenID: return self.provider