ProxyOptions
A proxy to which a ClientHandler or ReverseProxyHandler can submit requests, and an AmService can submit Websocket notifications.
Use this object to configure a proxy for AM notifications, and use it in a ClientHandler or ReverseProxyHandler, and again in an AmService notifications block.
Usage
Use one of the following ProxyOption types with the proxyOptions
option of
ClientHandler, ReverseProxyHandler, and
AmService:
-
No proxy.
{ "name": string, "type": "NoProxyOptions" }
-
System defined proxy options.
{ "name": string, "type": "SystemProxyOptions" }
-
Custom proxy
{ "name": string, "type": "CustomProxyOptions", "config": { "uri": configuration expression<url>, "username": configuration expression<string>, "passwordSecretId": configuration expression<secret-id>, "secretsProvider": SecretsProvider reference } }
Default: NoProxyOptions
Properties
"uri"
: configuration expression<url>, required-
URI of a server to use as a proxy for outgoing requests.
The result of the expression must be a string that represents a valid URI, but isn’t a real
java.net.URI
object. "username"
: configuration expression<string>, required if the proxy requires authentication-
Username to access the proxy server.
"passwordSecretId"
: configuration expression<secret-id>, required if the proxy requires authentication-
The secret ID of the password to access the proxy server.
This secret ID must point to a GenericSecret.
"secretsProvider"
: _ SecretsProvider <reference>, required-
The SecretsProvider to query for the proxy’s password.
Example
In the following example, the handler passes outgoing requests to the proxy server, which requires authentication:
"handler": {
"type": "ClientHandler" or "ReverseProxyHandler",
"config": {
"proxyOptions": {
"type": "CustomProxyOptions",
"config": {
"uri": "https://proxy.example.com:3128",
"username": "proxyuser",
"passwordSecretId": "myproxy.secret.id",
"secretsProvider": "SystemAndEnvSecretStore"
}
}
}
}
In the following example, the AmService notification service passes Websocket notifications to the proxy server, which requires authentication:
"type": "AmService",
"config": {
...
"notifications": {
"proxyOptions": {
"type": "CustomProxyOptions",
"config": {
"uri": "https://proxy.example.com:3128",
"username": "proxyuser",
"passwordSecretId": "myproxy.secret.id",
"secretsProvider": "SystemAndEnvSecretStore"
}
}
}
}
}