def gather_request_args(self, **kwargs): ar_args = Service.gather_request_args(self, **kwargs) if 'redirect_uri' not in ar_args: try: ar_args['redirect_uri'] = self.service_context.redirect_uris[0] except (KeyError, AttributeError): raise MissingParameter('redirect_uri') return ar_args
def get_state_parameter(request_args, kwargs): """Find a state value from a set of possible places.""" try: _state = kwargs['state'] except KeyError: try: _state = request_args['state'] except KeyError: raise MissingParameter('state') return _state
def _matches_issued_trust_mark(self, request): id = request.get("id") sub = request.get("sub") if sub and sub != self.server_get("context").entity_id: return False mark = request.get("trust_mark") for _tm in self.server_get('context').signed_trust_marks: if mark: if mark == _tm: return True elif id: _jwt = factory(_tm) _payload = _jwt.jwt.payload() if _payload["id"] == id: return True else: raise MissingParameter("Must provide id or mark") return False
def create_authz_session(self, authn_event, areq, client_id="", uid="", **kwargs): """ :param authn_event: :param areq: :param client_id: :param uid: :param kwargs: :return: """ try: _uid = authn_event["uid"] except (TypeError, KeyError): _uid = uid if not _uid: raise MissingParameter('Need a "uid"') sid = self.handler["code"].key(user=_uid, areq=areq) access_grant = self.handler["code"](sid=sid) _info = SessionInfo(code=access_grant, oauth_state="authz") if client_id: _info["client_id"] = client_id if areq: _info["authn_req"] = areq self.map_kv2sid("state", areq["state"], sid) if authn_event: _info["authn_event"] = authn_event if kwargs: _info.update(kwargs) self[sid] = _info return sid