|
@@ -427,6 +427,10 @@ def validate_credential():
|
|
|
'access_key_id': base_config.access_key_id,
|
|
'access_key_id': base_config.access_key_id,
|
|
|
'secret_access_key': base_config.get_secret_access_key()
|
|
'secret_access_key': base_config.get_secret_access_key()
|
|
|
}
|
|
}
|
|
|
|
|
+ # Add session token if available
|
|
|
|
|
+ session_token = base_config.get_session_token()
|
|
|
|
|
+ if session_token:
|
|
|
|
|
+ base_credentials['session_token'] = session_token
|
|
|
else:
|
|
else:
|
|
|
credential_config = {
|
|
credential_config = {
|
|
|
'access_key_id': credential.access_key_id,
|
|
'access_key_id': credential.access_key_id,
|
|
@@ -463,6 +467,10 @@ def validate_credential():
|
|
|
'access_key_id': base_config.access_key_id,
|
|
'access_key_id': base_config.access_key_id,
|
|
|
'secret_access_key': base_config.get_secret_access_key()
|
|
'secret_access_key': base_config.get_secret_access_key()
|
|
|
}
|
|
}
|
|
|
|
|
+ # Add session token if available
|
|
|
|
|
+ session_token = base_config.get_session_token()
|
|
|
|
|
+ if session_token:
|
|
|
|
|
+ base_credentials['session_token'] = session_token
|
|
|
elif credential_type == 'access_key':
|
|
elif credential_type == 'access_key':
|
|
|
access_key_id = data.get('access_key_id', '').strip()
|
|
access_key_id = data.get('access_key_id', '').strip()
|
|
|
secret_access_key = data.get('secret_access_key', '').strip()
|
|
secret_access_key = data.get('secret_access_key', '').strip()
|
|
@@ -542,7 +550,8 @@ def update_base_role():
|
|
|
Request body:
|
|
Request body:
|
|
|
{
|
|
{
|
|
|
"access_key_id": "string" (required),
|
|
"access_key_id": "string" (required),
|
|
|
- "secret_access_key": "string" (required)
|
|
|
|
|
|
|
+ "secret_access_key": "string" (required),
|
|
|
|
|
+ "session_token": "string" (optional, for temporary credentials)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Returns:
|
|
Returns:
|
|
@@ -559,6 +568,7 @@ def update_base_role():
|
|
|
# Validate required fields
|
|
# Validate required fields
|
|
|
access_key_id = data.get('access_key_id', '').strip()
|
|
access_key_id = data.get('access_key_id', '').strip()
|
|
|
secret_access_key = data.get('secret_access_key', '').strip()
|
|
secret_access_key = data.get('secret_access_key', '').strip()
|
|
|
|
|
+ session_token = data.get('session_token', '').strip() if data.get('session_token') else None
|
|
|
|
|
|
|
|
if not access_key_id:
|
|
if not access_key_id:
|
|
|
raise ValidationError(
|
|
raise ValidationError(
|
|
@@ -574,12 +584,16 @@ def update_base_role():
|
|
|
|
|
|
|
|
# Validate the credentials before saving
|
|
# Validate the credentials before saving
|
|
|
try:
|
|
try:
|
|
|
|
|
+ credential_config = {
|
|
|
|
|
+ 'access_key_id': access_key_id,
|
|
|
|
|
+ 'secret_access_key': secret_access_key
|
|
|
|
|
+ }
|
|
|
|
|
+ if session_token:
|
|
|
|
|
+ credential_config['session_token'] = session_token
|
|
|
|
|
+
|
|
|
provider = AWSCredentialProvider(
|
|
provider = AWSCredentialProvider(
|
|
|
credential_type='access_key',
|
|
credential_type='access_key',
|
|
|
- credential_config={
|
|
|
|
|
- 'access_key_id': access_key_id,
|
|
|
|
|
- 'secret_access_key': secret_access_key
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ credential_config=credential_config
|
|
|
)
|
|
)
|
|
|
provider.validate()
|
|
provider.validate()
|
|
|
except CredentialError as e:
|
|
except CredentialError as e:
|
|
@@ -600,12 +614,14 @@ def update_base_role():
|
|
|
# Update existing config
|
|
# Update existing config
|
|
|
config.access_key_id = access_key_id
|
|
config.access_key_id = access_key_id
|
|
|
config.set_secret_access_key(secret_access_key)
|
|
config.set_secret_access_key(secret_access_key)
|
|
|
|
|
+ config.set_session_token(session_token)
|
|
|
else:
|
|
else:
|
|
|
# Create new config
|
|
# Create new config
|
|
|
config = BaseAssumeRoleConfig(
|
|
config = BaseAssumeRoleConfig(
|
|
|
access_key_id=access_key_id
|
|
access_key_id=access_key_id
|
|
|
)
|
|
)
|
|
|
config.set_secret_access_key(secret_access_key)
|
|
config.set_secret_access_key(secret_access_key)
|
|
|
|
|
+ config.set_session_token(session_token)
|
|
|
db.session.add(config)
|
|
db.session.add(config)
|
|
|
|
|
|
|
|
db.session.commit()
|
|
db.session.commit()
|