Skip to content

Issue/540 567 no proxy config trusted reverse proxies - #568

Open
hhund wants to merge 31 commits into
developfrom
issue/540_567_No_Proxy_Config_Trusted_Reverse_Proxies
Open

Issue/540 567 no proxy config trusted reverse proxies#568
hhund wants to merge 31 commits into
developfrom
issue/540_567_No_Proxy_Config_Trusted_Reverse_Proxies

Conversation

@hhund

@hhund hhund commented Aug 16, 2026

Copy link
Copy Markdown
Member
  • Fixed typos in variable names, class names, and javadoc.
  • Fixed some log messages.
  • Added missing final modifier to some constants.
  • Replaces set variable to empty string with unset variable in apache httpd config.
  • Adds trusted reverse proxy allow-list feature:
    • Default config sets hostname "proxy" as allowed reverse proxy.
    • The feature can be disabled by configuring "disabled" as the only allowed reverse proxy.
    • Hostnames, IPv4/IPv6 addresses and IPv4/IPv6 CIDR networks can be configured as allowed.
    • Hostnames are resolved against the DNS and periodically refreshed. The timeout can be configured and should be chosen according to the acceptable stale-authorization window and e.g. the expected reverse-proxy replacement time.
  • Extends no-proxy config to allow for multi wildcard, IP and CIDR rules:
    • The "dev.dsf.proxy.noProxy" config property can now be configured with exact domains example.com, one level wildcard sub-domains *.example.com, one or more level wildcard sub-domains **.example.com, IP-addresses and CIDR Networks.
    • IP/CIDR rules are applied if the target no-proxy URL is specified as an IP-address.
    • IPv6 addresses and CIDR networks need to be specified in square brackets to allow for the optional specification of a target port.
    • Examples: sub.exact.com:80, *.one.level.wildcard.com, **.multilevel.com:443, 192.168.1.1, 192.168.1.0/24:80, [2001:db8::1]:443, [2001:db8::/32]
    • If no port is specified the target port is ignored.

closes #540
closes #567

Modified config property

DEV_DSF_PROXY_NOPROXY

  • Property: dev.dsf.proxy.noProxy
  • Required: No
  • Description: Forward proxy no-proxy list: Target URLs will match exact domains example.com, against one level sub-domains *.example.com, one or more level sub-domains **.example.com, against IP-addresses and CIDR Networks if the target URL is specified as IP-address (IPv6 in square brackets), if no port is specified - all ports are matched; comma or space separated list, YAML block scalars supported
  • Example: sub.exact.com:80, *.one.level.wildcard.com, **.multilevel.com:443, 192.168.1.1, 192.168.1.0/24:80, [2001:db8::1]:443, [2001:db8::/32]

New config properties

DEV_DSF_SERVER_AUTH_TRUST_REVERSE_PROXY

  • Property: dev.dsf.server.auth.trust.reverse.proxy
  • Required: No
  • Description: Defines allowed source IPs for the reverse proxy, supported definitions: by hostname - resolved periodically (see DEV_DSF_SERVER_AUTH_TRUST_REVERSE_PROXY_HOSTNAME_REFRESH_TIMEOUT), by single IPv4 or IPv6 address, by IPv4 CIDR or IPv6 CIDR network; comma or space separated list, YAML block scalars supported; use disabled to allow all incoming IP addresses
  • Example: proxy, ingress.cluster.local, 192.168.1.1, 192.168.1.0/24, [2001:db8::1], [2001:db8::/32]
  • Default: proxy

DEV_DSF_SERVER_AUTH_TRUST_REVERSE_PROXY_HOSTNAME_REFRESH_TIMEOUT

  • Property: dev.dsf.server.auth.trust.reverse.proxy.hostname.refresh.timeout
  • Required: No
  • Description: Refresh timeout after which a trusted reverse proxy hostname is re-resolved
  • Recommendation: The refresh timeout should be chosen according to the acceptable stale-authorization window and e.g. the expected reverse-proxy replacement time
  • Default: PT10S

hhund added 27 commits August 4, 2026 17:52
componentes -> components
cComponentes -> components
eruComponentes -> components
ARTEFACT -> ARTIFACT
artefact -> artifact
Artefact -> Artifact
organizatioRoleSystem -> organizationRoleSystem
No method name changes in API interfaces and classes
- Default config sets hostname "proxy" as allowed reverse proxy.
- The feature can be disabled by configuring "disabled" as the only
allowed reverse proxy.
- Hostnames, IPv4/IPv6 addresses and IPv4/IPv6 CIDR networks can be
configured as allowed.
- Hostnames are resolved against the DNS and periodically refreshed. The
timeout can be configured and should be chosen according to the
acceptable stale-authorization window and e.g. the expected
reverse-proxy replacement time.
- The "dev.dsf.proxy.noProxy" config property can now be configured with
exact domains `example.com`, one level wildcard sub-domains
`*.example.com`, one or more level wildcard sub-domains
`**.example.com`, IP-addresses and CIDR Networks.
- IP/CIDR rules are applied if the target URL is specified as an
IP-address.
- IPv6 addresses and CIDR networks need to be specified in square
brackets to allow for the optional specification of a target port.
- Examples: sub.exact.com:80, *.one.level.wildcard.com,
**.multilevel.com:443, 192.168.1.1, 192.168.1.0/24:80,
[2001:db8::1]:443, [2001:db8::/32]
- If no port is specified the target port is ignored.
@hhund hhund added this to the 2.2.0 milestone Aug 16, 2026
@hhund
hhund requested a review from schwzr August 16, 2026 15:59
@hhund hhund self-assigned this Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add IP Allowlist to ForwardedSecureRequestCustomizer Make the no Proxy List more flexible

2 participants