boulder/test
Jacob Hoffman-Andrews e198d3529d
wfe: check well-formedness of requested names early (#7530)
This allows us to give a user-meaningful error about malformed names
early on, instead of propagating internal errors from the new rate
limiting system.

This moves the well-formedness logic from `WillingToIssue` into a new
function `WellFormedDomainNames`, which calls `ValidDomain` on each name
and combines the errors into suberrors if there is more than one.
`WillingToIssue` now calls `WellFormedDomainNames` to keep the existing
behavior. Additionally, WFE calls `WellFormedDomainNames` before
checking rate limits.

This creates a slight behavior change: If an order contains both
malformed domain names and wellformed but blocked domain names,
suberrors will only be generated for the malformed domain names. This is
reflected in the changes to `TestWillingToIssue_Wildcard`.

Adds a WFE test case for receiving malformed identifiers in a new-order
request.

Follows up on #3323 and #7218

Fixes #7526

Some small incidental fixes:

- checkWildcardHostList was checking `pa.blocklist` for `nil` before
accessing `pa.wildcardExactBlocklist`. Fix that.
- move table test for WillingToIssue into a new test case for
WellFormedDomainNames
 - move two standalone test cases into the big table test
2024-06-10 13:46:55 -07:00
..
aia-test-srv Add pkilint to CI via custom zlint (#7441) 2024-04-30 09:29:26 -07:00
akamai-test-srv Appease errcheck (#6821) 2023-04-14 22:32:24 -04:00
block-a-key Block keys using hex(sha256(spki)). (#4745) 2020-04-09 09:41:33 -07:00
boulder-tools Use generic types for gRPC stream implementations (#7501) 2024-05-24 13:54:25 -07:00
certs Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
config Run PKILint in config integration tests (#7524) 2024-06-04 22:31:16 -07:00
config-next Deprecate EnforceMultiVA and MultiVAFullResults feature flags (#7520) 2024-06-04 11:57:03 -07:00
consul Dynamically generate grpc-creds at integration test startup (#7477) 2024-05-15 11:31:23 -04:00
ct-test-srv Update integration test hierarchy for the modern era (#7411) 2024-04-08 14:06:00 -07:00
grafana Python upgrade os upgrades and travis config cleanup (#5186) 2020-11-23 18:12:04 -08:00
health-checker Remove `service1` / `service2` names in consul (#7266) 2024-01-22 09:34:20 -08:00
hierarchy CRLs: include IssuingDistributionPoint extension (#6412) 2022-10-24 11:21:55 -07:00
inmem Use generic types for gRPC stream implementations (#7501) 2024-05-24 13:54:25 -07:00
integration wfe: check well-formedness of requested names early (#7530) 2024-06-10 13:46:55 -07:00
list-features Add GitHub Action to prompt CP/CPS review when new flags are added (#7425) 2024-04-12 12:04:48 -07:00
load-generator Replace explicit int loops with range-over-int (#7434) 2024-04-22 10:34:51 -07:00
mail-test-srv Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
ocsp Update integration test hierarchy for the modern era (#7411) 2024-04-08 14:06:00 -07:00
prometheus Remove ocsp-updater from Boulder (#6769) 2023-03-31 14:39:04 -07:00
proxysql Remove ocsp-updater from Boulder (#6769) 2023-03-31 14:39:04 -07:00
s3-test-srv Update integration test hierarchy for the modern era (#7411) 2024-04-08 14:06:00 -07:00
secrets WFE: Add new key-value ratelimits implementation (#7089) 2023-10-04 14:12:38 -04:00
vars Improve cert_storage_failed_test (#6849) 2023-05-02 15:43:07 -07:00
asserts.go Better compile-time type checking for gRPC server implementations (#7504) 2024-05-28 09:26:29 -07:00
certs.go Further simplifications to test.ThrowAwayCert (#7129) 2023-11-02 09:45:56 -07:00
challtestsrv.py challtestsrv.py: change address of target (#6234) 2022-07-18 11:10:00 -07:00
chisel2.py Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
create_db.sh Clean up database schema (#6832) 2023-04-21 10:37:05 -07:00
db.go It's borpin' time! (#6982) 2023-07-17 14:38:29 -07:00
entrypoint.sh grpc/sa: Implement deep health checks (#6928) 2023-06-12 13:58:53 -04:00
example-bad-key-revoker-template Add bad-key-revoker daemon (#4788) 2020-04-23 11:51:59 -07:00
example-blocked-keys.yaml Remove more test keys (#7488) 2024-05-16 11:20:07 -04:00
example-weak-keys.json Remove executable bit from JSON file (#6764) 2023-03-21 08:59:41 -07:00
format-configs.py Check if JSON configs are properly formatted instead of relying on git --diff (#7375) 2024-03-08 14:39:00 -08:00
helpers.py Dynamically generate grpc-creds at integration test startup (#7477) 2024-05-15 11:31:23 -04:00
hostname-policy.yaml PA: Support YAML for hostname policy. (#4180) 2019-04-26 14:35:28 -04:00
integration-test.py Dynamically generate grpc-creds at integration test startup (#7477) 2024-05-15 11:31:23 -04:00
rate-limit-policies.yml RA: Implement leaky bucket for duplicate certificate limit (#6262) 2022-07-29 17:39:31 -07:00
redis-cli.sh Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
redis-ocsp.config Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
redis-ratelimits.config Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
startservers.py Remove all static minica keys (#7489) 2024-05-17 11:45:40 -07:00
test-key-5.der Fix wfe2 key rollover (#3373) 2018-01-18 14:31:48 -08:00
v2_integration.py Dynamically generate grpc-creds at integration test startup (#7477) 2024-05-15 11:31:23 -04:00
wait-for-it.sh Quiet the output of wait-for-it (#5775) 2021-11-05 11:38:20 -07:00