mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-11 18:29:06 +00:00
Add challenge selection
This commit is contained in:
@@ -16,5 +16,5 @@ Feature: Challenge
|
|||||||
Then I create a RSA private key pair as cert_key
|
Then I create a RSA private key pair as cert_key
|
||||||
Then I sign the certificate signing request csr with private key cert_key and output it as csr_pem in PEM format
|
Then I sign the certificate signing request csr with private key cert_key and output it as csr_pem in PEM format
|
||||||
Then I submit the certificate signing request PEM csr_pem certificate order to the ACME server as order
|
Then I submit the certificate signing request PEM csr_pem certificate order to the ACME server as order
|
||||||
Then I select challenge with type http-01 from order as challenge
|
Then I select challenge with type http-01 for domain localhost from order at order as challenge
|
||||||
|
|
||||||
|
|||||||
@@ -304,20 +304,39 @@ def step_impl(context: Context, var_path: str):
|
|||||||
|
|
||||||
|
|
||||||
@then(
|
@then(
|
||||||
"I select challenge with type {challenge_type} from {var_path} as {challenge_var}"
|
"I select challenge with type {challenge_type} for domain {domain} from order at {var_path} as {challenge_var}"
|
||||||
)
|
)
|
||||||
def step_impl(context: Context, challenge_type: str, var_path: str, challenge_var: str):
|
def step_impl(
|
||||||
order = eval_var(context, var_path)
|
context: Context,
|
||||||
|
challenge_type: str,
|
||||||
|
domain: str,
|
||||||
|
var_path: str,
|
||||||
|
challenge_var: str,
|
||||||
|
):
|
||||||
|
order = eval_var(context, var_path, as_json=False)
|
||||||
if not isinstance(order, messages.OrderResource):
|
if not isinstance(order, messages.OrderResource):
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"Expected OrderResource but got {(type(order),)!r} at {var_path!r}"
|
f"Expected OrderResource but got {type(order)!r} at {var_path!r}"
|
||||||
|
)
|
||||||
|
auths = list(
|
||||||
|
filter(lambda o: o.body.identifier.value == domain, order.authorizations)
|
||||||
)
|
)
|
||||||
auths = list(filter(lambda a: a.type == challenge_type, order.authorizations))
|
|
||||||
if not auths:
|
if not auths:
|
||||||
|
raise ValueError(
|
||||||
|
f"Authorization for domain {domain!r} not found in {var_path!r}"
|
||||||
|
)
|
||||||
|
if len(auths) > 1:
|
||||||
|
raise ValueError(
|
||||||
|
f"More than one order for domain {domain!r} found in {var_path!r}"
|
||||||
|
)
|
||||||
|
auth = auths[0]
|
||||||
|
|
||||||
|
challenges = list(filter(lambda a: a.typ == challenge_type, auth.body.challenges))
|
||||||
|
if not challenges:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"Authorization type {challenge_type!r} not found in {var_path!r}"
|
f"Authorization type {challenge_type!r} not found in {var_path!r}"
|
||||||
)
|
)
|
||||||
if len(auths) > 1:
|
if len(challenges) > 1:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"More than one authorization for type {challenge_type!r} found in {var_path!r}"
|
f"More than one authorization for type {challenge_type!r} found in {var_path!r}"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user