Пример #1
0
    def __init__(self, server_get, **kwargs):
        Endpoint.__init__(self, server_get, **kwargs)
        # self.post_construct.append(self.create_entity_statement)
        self.metadata_api = None
        _subs = kwargs["subordinates"]

        if "class" in _subs and "kwargs" in _subs:
            self.server_get("context").subordinates = init_service(_subs)
        else:
            self.server_get("context").subordinates = _subs
Пример #2
0
 def __init__(self, server_get, new_refresh_token=False, **kwargs):
     Endpoint.__init__(self, server_get, **kwargs)
     self.post_parse_request.append(self._post_parse_request)
     if "client_authn_method" in kwargs:
         self.endpoint_info["token_endpoint_auth_methods_supported"] = kwargs[
             "client_authn_method"
         ]
     self.allow_refresh = False
     self.new_refresh_token = new_refresh_token
     self.configure_grant_types(kwargs.get("grant_types_supported"))
Пример #3
0
 def __init__(self,
              server_get: Callable,
              add_claims_by_scope: Optional[bool] = True,
              **kwargs):
     Endpoint.__init__(
         self,
         server_get,
         add_claims_by_scope=add_claims_by_scope,
         **kwargs,
     )
     # Add the issuer ID as an allowed JWT target
     self.allowed_targets.append("")
Пример #4
0
    def do_response(self,
                    response_args: Optional[Union[Message, dict]] = None,
                    request: Optional[Union[Message, dict]] = None,
                    client_id: Optional[str] = "",
                    **kwargs) -> dict:

        if "error" in kwargs and kwargs["error"]:
            return Endpoint.do_response(self, response_args, request, **kwargs)

        _context = self.server_get("endpoint_context")
        if not client_id:
            raise MissingValue("client_id")

        # Should I return a JSON or a JWT ?
        _cinfo = _context.cdb[client_id]

        # default is not to sign or encrypt
        try:
            sign_alg = _cinfo["userinfo_signed_response_alg"]
            sign = True
        except KeyError:
            sign_alg = ""
            sign = False

        try:
            enc_enc = _cinfo["userinfo_encrypted_response_enc"]
            enc_alg = _cinfo["userinfo_encrypted_response_alg"]
            encrypt = True
        except KeyError:
            encrypt = False
            enc_alg = enc_enc = ""

        if encrypt or sign:
            _jwt = JWT(
                _context.keyjar,
                iss=_context.issuer,
                sign=sign,
                sign_alg=sign_alg,
                encrypt=encrypt,
                enc_enc=enc_enc,
                enc_alg=enc_alg,
            )

            resp = _jwt.pack(response_args, recv=client_id)
            content_type = "application/jwt"
        else:
            if isinstance(response_args, dict):
                resp = json.dumps(response_args)
            else:
                resp = response_args.to_json()
            content_type = "application/json"

        http_headers = [("Content-type", content_type)]
        http_headers.extend(OAUTH2_NOCACHE_HEADERS)

        return {"response": resp, "http_headers": http_headers}
Пример #5
0
 def __init__(self, server_get, **kwargs):
     Endpoint.__init__(self, server_get, **kwargs)
     self.post_construct.append(self.create_entity_statement)
     self.metadata_api = None
Пример #6
0
 def __init__(self, server_get, **kwargs):
     Endpoint.__init__(self, server_get, **kwargs)
     self.metadata_api = None
Пример #7
0
 def __init__(self, server_get, **kwargs):
     Endpoint.__init__(self, server_get, **kwargs)
     self.post_parse_request.append(self._do_request_uri)
     self.post_parse_request.append(self._post_parse_request)
     self.allowed_request_algorithms = AllowedAlgorithms(ALG_PARAMS)
Пример #8
0
 def __init__(self, server_get, **kwargs):
     Endpoint.__init__(self, server_get, **kwargs)
     self.offset = kwargs.get("offset", 0)
Пример #9
0
 def __init__(self, server_get, **kwargs):
     Endpoint.__init__(self, server_get=server_get, **kwargs)
     self.pre_construct.append(self.add_endpoints)
Пример #10
0
 def __init__(self, server_get, **kwargs):
     _csi = kwargs.get("check_session_iframe")
     if _csi and not _csi.startswith("http"):
         kwargs["check_session_iframe"] = add_path(server_get("endpoint_context").issuer, _csi)
     Endpoint.__init__(self, server_get, **kwargs)
     self.iv = as_bytes(rndstr(24))