mirror of
https://github.com/hoshikawa2/OCI_API_Gateway_Automation2.git
synced 2026-03-06 10:11:01 +00:00
Correção. Não estava ocorrendo a validação de schema_body_validation para open api 3, pois estava validando somente quando a especificação estava configurada para propriedades diretamente. Caso as validações fossem declaradas em schema (requestBody/Content/application/json/schema/$ref/#components/schemas) a validação em authAPI não executava (simplesmente ignora a validação).
É necessário re-executar o applyValidationAPI para reimplantar as APIs pois precisa acertar o schema_body_validation dos headers. Precisa fazer a autenticação na 1a e na 2a camada de api (validation-callback) pois pode-se chamar a 2a camada diretamente.
This commit is contained in:
Binary file not shown.
@@ -75,44 +75,43 @@ def handler(ctx, data: io.BytesIO = None):
|
|||||||
# header values
|
# header values
|
||||||
access_token = header["token"]
|
access_token = header["token"]
|
||||||
|
|
||||||
if (body_schema_validation == None):
|
authorization = auth_idcs(access_token, url, ClientId, ClientSecret)
|
||||||
authorization = auth_idcs(access_token, url, ClientId, ClientSecret)
|
try:
|
||||||
try:
|
if (authorization.json().get("active") != True):
|
||||||
if (authorization.json().get("active") != True):
|
|
||||||
return response.Response(
|
|
||||||
ctx,
|
|
||||||
status_code=401,
|
|
||||||
response_data=json.dumps({"active": False, "wwwAuthenticate": jsonData})
|
|
||||||
)
|
|
||||||
except(Exception) as ex1:
|
|
||||||
jsonData = 'error parsing json payload: ' + str(ex1)
|
|
||||||
put_logs_response = logging.put_logs(
|
|
||||||
log_id="ocid1.log.oc1.iad.amaaaaaanamaaaaaanamaaaaaanamaaaaaanamaaaaaanamaaaaaan",
|
|
||||||
put_logs_details=oci.loggingingestion.models.PutLogsDetails(
|
|
||||||
specversion="EXAMPLE-specversion-Value",
|
|
||||||
log_entry_batches=[
|
|
||||||
oci.loggingingestion.models.LogEntryBatch(
|
|
||||||
entries=[
|
|
||||||
oci.loggingingestion.models.LogEntry(
|
|
||||||
data="error(a): " + jsonData,
|
|
||||||
id="ocid1.test.oc1..00000001.EXAMPLE-id-Value")],
|
|
||||||
source="EXAMPLE-source-Value",
|
|
||||||
type="EXAMPLE-type-Value")]))
|
|
||||||
rdata = json.dumps({
|
|
||||||
"active": False,
|
|
||||||
"context": {
|
|
||||||
"status_code": 401,
|
|
||||||
"message": "Unauthorized",
|
|
||||||
"body": body,
|
|
||||||
"body_schema_validation": json.dumps(body_schema_validation),
|
|
||||||
"error": str(ex1)
|
|
||||||
}})
|
|
||||||
|
|
||||||
return response.Response(
|
return response.Response(
|
||||||
ctx,
|
ctx,
|
||||||
status_code=401,
|
status_code=401,
|
||||||
response_data=rdata
|
response_data=json.dumps({"active": False, "wwwAuthenticate": jsonData})
|
||||||
)
|
)
|
||||||
|
except(Exception) as ex1:
|
||||||
|
jsonData = 'error parsing json payload: ' + str(ex1)
|
||||||
|
put_logs_response = logging.put_logs(
|
||||||
|
log_id="ocid1.log.oc1.iad.amaaaaaanamaaaaaanamaaaaaanamaaaaaanamaaaaaanamaaaaaan",
|
||||||
|
put_logs_details=oci.loggingingestion.models.PutLogsDetails(
|
||||||
|
specversion="EXAMPLE-specversion-Value",
|
||||||
|
log_entry_batches=[
|
||||||
|
oci.loggingingestion.models.LogEntryBatch(
|
||||||
|
entries=[
|
||||||
|
oci.loggingingestion.models.LogEntry(
|
||||||
|
data="error(a): " + jsonData,
|
||||||
|
id="ocid1.test.oc1..00000001.EXAMPLE-id-Value")],
|
||||||
|
source="EXAMPLE-source-Value",
|
||||||
|
type="EXAMPLE-type-Value")]))
|
||||||
|
rdata = json.dumps({
|
||||||
|
"active": False,
|
||||||
|
"context": {
|
||||||
|
"status_code": 401,
|
||||||
|
"message": "Unauthorized",
|
||||||
|
"body": body,
|
||||||
|
"body_schema_validation": json.dumps(body_schema_validation),
|
||||||
|
"error": str(ex1)
|
||||||
|
}})
|
||||||
|
|
||||||
|
return response.Response(
|
||||||
|
ctx,
|
||||||
|
status_code=401,
|
||||||
|
response_data=rdata
|
||||||
|
)
|
||||||
|
|
||||||
rdata = json.dumps({
|
rdata = json.dumps({
|
||||||
"active": True,
|
"active": True,
|
||||||
|
|||||||
Reference in New Issue
Block a user