Source code for pyeudiw.satosa.frontends.openid4vci.endpoints.credential_issuer_metadata_endpoint
import json
from satosa.context import Context
from pyeudiw.satosa.utils.response import JsonResponse
from pyeudiw.satosa.frontends.openid4vci.endpoints.vci_base_endpoint import VCIBaseEndpoint
[docs]
class CredentialIssuerMetadataHandler(VCIBaseEndpoint):
def __init__(self, config: dict, internal_attributes: dict[str, dict[str, str | list[str]]], base_url: str, name: str, *args):
"""
Initialize the OpenID4VCI metadata endpoint class.
Args:
config (dict): The configuration dictionary.
internal_attributes (dict): The internal attributes config.
base_url (str): The base URL of the service.
name (str): The name of the SATOSA module to append to the URL.
"""
super().__init__(config, internal_attributes, base_url, name)
if not self.config.get("metadata", {}).get("openid_credential_issuer"):
raise ValueError("Missing 'openid_credential_issuer' in metadata configuration.")
@property
def metadata(self) -> dict:
metadata = self.config.get("metadata", {})
return metadata
@property
def openid_credential_issuer_metadata_as_dict(self) -> dict:
"""Returns the entity configuration as a dictionary."""
ec_payload = self.metadata.get("openid_credential_issuer", {})
return ec_payload
[docs]
def endpoint(self, context: Context) -> JsonResponse:
"""
Handle request to the metadata endpoint.
Args:
context (Context): The SATOSA context.
Returns:
A Response object.
"""
return JsonResponse(
message=self.openid_credential_issuer_metadata_as_dict,
status="200",
)