fix #3133 Cognito Identity Provider : create_user_pool_client GenerateSecret=True doesn't work (#3135)
* fix #3133 Cognito Identity Provider : create_user_pool_client `GenerateSecret=True` doesn't work * add test for update_user_pool_client
This commit is contained in:
parent
419f3fba5a
commit
3e2a5e7ee8
3 changed files with 64 additions and 4 deletions
|
|
@ -210,10 +210,11 @@ class CognitoIdpUserPoolDomain(BaseModel):
|
|||
|
||||
|
||||
class CognitoIdpUserPoolClient(BaseModel):
|
||||
def __init__(self, user_pool_id, extended_config):
|
||||
def __init__(self, user_pool_id, generate_secret, extended_config):
|
||||
self.user_pool_id = user_pool_id
|
||||
self.id = str(uuid.uuid4())
|
||||
self.secret = str(uuid.uuid4())
|
||||
self.generate_secret = generate_secret or False
|
||||
self.extended_config = extended_config or {}
|
||||
|
||||
def _base_json(self):
|
||||
|
|
@ -225,6 +226,8 @@ class CognitoIdpUserPoolClient(BaseModel):
|
|||
|
||||
def to_json(self, extended=False):
|
||||
user_pool_client_json = self._base_json()
|
||||
if self.generate_secret:
|
||||
user_pool_client_json.update({"ClientSecret": self.secret})
|
||||
if extended:
|
||||
user_pool_client_json.update(self.extended_config)
|
||||
|
||||
|
|
@ -402,12 +405,14 @@ class CognitoIdpBackend(BaseBackend):
|
|||
return user_pool_domain
|
||||
|
||||
# User pool client
|
||||
def create_user_pool_client(self, user_pool_id, extended_config):
|
||||
def create_user_pool_client(self, user_pool_id, generate_secret, extended_config):
|
||||
user_pool = self.user_pools.get(user_pool_id)
|
||||
if not user_pool:
|
||||
raise ResourceNotFoundError(user_pool_id)
|
||||
|
||||
user_pool_client = CognitoIdpUserPoolClient(user_pool_id, extended_config)
|
||||
user_pool_client = CognitoIdpUserPoolClient(
|
||||
user_pool_id, generate_secret, extended_config
|
||||
)
|
||||
user_pool.clients[user_pool_client.id] = user_pool_client
|
||||
return user_pool_client
|
||||
|
||||
|
|
|
|||
|
|
@ -84,8 +84,9 @@ class CognitoIdpResponse(BaseResponse):
|
|||
# User pool client
|
||||
def create_user_pool_client(self):
|
||||
user_pool_id = self.parameters.pop("UserPoolId")
|
||||
generate_secret = self.parameters.pop("GenerateSecret", False)
|
||||
user_pool_client = cognitoidp_backends[self.region].create_user_pool_client(
|
||||
user_pool_id, self.parameters
|
||||
user_pool_id, generate_secret, self.parameters
|
||||
)
|
||||
return json.dumps({"UserPoolClient": user_pool_client.to_json(extended=True)})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue