Skip to content

Commit

Permalink
[FABG-777] matchers substitution expression fix
Browse files Browse the repository at this point in the history
instead of `$1`, `${1}` is recommended to avoid
regex replace all strings issues.

Change-Id: Icef27cd91607d9af6ca94b3af0f1a765d2d01338
Signed-off-by: Sudesh Shetty <[email protected]>
Signed-off-by: Troy Ronda <[email protected]>
  • Loading branch information
sudeshrshetty authored and troyronda committed Oct 12, 2018
1 parent 7c0cdfe commit e0602c4
Show file tree
Hide file tree
Showing 13 changed files with 79 additions and 67 deletions.
10 changes: 5 additions & 5 deletions pkg/core/config/testdata/config_test_entity_matchers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ certificateAuthorities:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
# In any case mappedHost's config will be used, so mapped host cannot be empty, if entityMatchers are used
Expand Down Expand Up @@ -543,8 +543,8 @@ entityMatchers:
mappedHost: local.peer0.org1.example.com

- pattern: (\w+).example4.(\w+):(\d+)
urlSubstitutionExp: $1.org1.example.$2:$3
sslTargetOverrideUrlSubstitutionExp: $1.org1.example.$2
urlSubstitutionExp: ${1}.org1.example.${2}:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.${2}
mappedHost: local.peer0.org1.example.com

- pattern: (\w+).example2.com:(\d+)
Expand Down Expand Up @@ -580,8 +580,8 @@ entityMatchers:
mappedHost: local.orderer.example.com

- pattern: (\w+).example4.(\w+):(\d+)
urlSubstitutionExp: $1.example.$2:$3
sslTargetOverrideUrlSubstitutionExp: $1.example.$2
urlSubstitutionExp: ${1}.example.${2}:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.example.${2}
mappedHost: local.orderer.example.com

- pattern: (\w+).example5.(\w+)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -25,6 +25,7 @@ entityMatchers:
sslTargetOverrideUrlSubstitutionExp: peer0.org1.override.com
mappedHost: peer0.org1.example.com


orderer:
- pattern: (\w+).example.(\w+)
urlSubstitutionExp: orderer.example.com:8888
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand Down
25 changes: 15 additions & 10 deletions pkg/core/config/testdata/matcher-samples/matchers_sample3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -26,9 +26,14 @@ entityMatchers:
mappedHost: peer0.org1.example.com

- pattern: (\w+).exampleY.(\w+):(\d+)
urlSubstitutionExp: $1.org1.example.$2:8888
sslTargetOverrideUrlSubstitutionExp: $1.org1.override.$2
mappedHost: $1.org1.example.$2
urlSubstitutionExp: ${1}.org1.example.${2}:8888
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.override.${2}
mappedHost: ${1}.org1.example.${2}

- pattern: sample-org(\d)peer1.demo.example.com:(\d+)
urlSubstitutionExp: xsample-org${1}peer1.demo.example.com:${2}
sslTargetOverrideUrlSubstitutionExp: xsample-org${1}peer1.demo.example.com
mappedHost: peer1.org${1}.example.com

orderer:
- pattern: (\w+).exampleX.(\w+):(\d+)
Expand All @@ -37,12 +42,12 @@ entityMatchers:
mappedHost: orderer.example.com

- pattern: (\w+).exampleY.(\w+):(\d+)
urlSubstitutionExp: $1.example.$2:8888
sslTargetOverrideUrlSubstitutionExp: $1.override.$2
mappedHost: $1.example.$2
urlSubstitutionExp: ${1}.example.${2}:8888
sslTargetOverrideUrlSubstitutionExp: ${1}.override.${2}
mappedHost: ${1}.example.${2}

certificateAuthority:
- pattern: (\w+).org1.example.(\w+)
urlSubstitutionExp: https://$1.org1.example.$2:8888
sslTargetOverrideUrlSubstitutionExp: $1.override.example.$2
mappedHost: $1.org1.example.$2
urlSubstitutionExp: https://${1}.org1.example.${2}:8888
sslTargetOverrideUrlSubstitutionExp: ${1}.override.example.${2}
mappedHost: ${1}.org1.example.${2}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand Down
14 changes: 7 additions & 7 deletions pkg/core/config/testdata/matcher-samples/matchers_sample5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ peers:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -79,9 +79,9 @@ entityMatchers:
mappedHost: peer0.org1.example.com

- pattern: (\w+).replace.example.(\w+):(\d+)
urlSubstitutionExp: $1.org1.example.$2:$3
sslTargetOverrideUrlSubstitutionExp: $1.org1.override.$2
mappedHost: $1.org1.example.$2
urlSubstitutionExp: ${1}.org1.example.${2}:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.override.${2}
mappedHost: ${1}.org1.example.${2}

- pattern: (\w+).missing.example.(\w+)
urlSubstitutionExp: peer0.org1.example.com:8888
Expand All @@ -99,9 +99,9 @@ entityMatchers:
mappedHost: orderer.example.com

- pattern: (\w+).replace.example.(\w+):(\d+)
urlSubstitutionExp: $1.example.com:$3
sslTargetOverrideUrlSubstitutionExp: $1.override.$2
mappedHost: $1.example.$2
urlSubstitutionExp: ${1}.example.com:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.override.${2}
mappedHost: ${1}.example.${2}

- pattern: (\w+).missing.example.(\w+)
urlSubstitutionExp: orderer.example.com:8888
Expand Down
14 changes: 7 additions & 7 deletions pkg/core/config/testdata/matcher-samples/matchers_sample6.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ certificateAuthorities:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -237,9 +237,9 @@ entityMatchers:
mappedHost: peer0.org1.example.com

- pattern: (\w+).replace.example.(\w+):(\d+)
urlSubstitutionExp: $1.org1.example.$2:$3
sslTargetOverrideUrlSubstitutionExp: $1.org1.override.$2
mappedHost: $1.org1.example.$2
urlSubstitutionExp: ${1}.org1.example.${2}:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.override.${2}
mappedHost: ${1}.org1.example.${2}

- pattern: (\w+).missing.example.(\w+)
urlSubstitutionExp: peer0.org1.example.com:8888
Expand All @@ -263,9 +263,9 @@ entityMatchers:
mappedHost: orderer.example.com

- pattern: (\w+).replace.example.(\w+):(\d+)
urlSubstitutionExp: $1.example.com:$3
sslTargetOverrideUrlSubstitutionExp: $1.override.$2
mappedHost: $1.example.$2
urlSubstitutionExp: ${1}.example.com:${3}
sslTargetOverrideUrlSubstitutionExp: ${1}.override.${2}
mappedHost: ${1}.example.${2}

- pattern: (\w+).missing.example.(\w+)
urlSubstitutionExp: orderer.example.com:8888
Expand Down
10 changes: 5 additions & 5 deletions pkg/core/config/testdata/template/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ certificateAuthorities:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -410,8 +410,8 @@ entityMatchers:
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).example4.(\w+):(\d+)
# urlSubstitutionExp: $1.org1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.$2
# urlSubstitutionExp: ${1}.org1.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.${2}
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).example5.(\w+)
Expand All @@ -437,8 +437,8 @@ entityMatchers:
# mappedHost: orderer.example.com
#
# - pattern: (\w+).example4.(\w+):(\d+)
# urlSubstitutionExp: $1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.$2
# urlSubstitutionExp: ${1}.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.${2}
# mappedHost: orderer.example.com

# - pattern: (\w+).example5.(\w+)
Expand Down
6 changes: 6 additions & 0 deletions pkg/fab/matchers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,12 @@ func TestURLMapping(t *testing.T) {
assert.Equal(t, overridedPeerHostNameOverride, peerConfig.GRPCOptions["ssl-target-name-override"])
assert.Equal(t, 6, len(peerConfig.GRPCOptions))

peerConfig, ok = config.PeerConfig("sample-org0peer1.demo.example.com:4321")
assert.True(t, ok, "supposed to find peer config")
assert.Equal(t, "xsample-org0peer1.demo.example.com:4321", peerConfig.URL)
assert.Equal(t, "xsample-org0peer1.demo.example.com", peerConfig.GRPCOptions["ssl-target-name-override"])
assert.Equal(t, 6, len(peerConfig.GRPCOptions))

//OrdererConfig Search Based on URL configured in config (using $ in entity matchers)
ordererConfig, ok = config.OrdererConfig("orderer.exampleY.com:1234")
assert.True(t, ok, "supposed to find orderer config")
Expand Down
18 changes: 9 additions & 9 deletions test/fixtures/config/config_e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ certificateAuthorities:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -442,13 +442,13 @@ certificateAuthorities:
#entityMatchers:
# peer:
# - pattern: (\w+).org1.example.com:(\d+)
# urlSubstitutionExp: $1.org1.example.com:$2
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
# urlSubstitutionExp: ${1}.org1.example.com:${2}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.com
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).org2.example.com:(\d+)
# urlSubstitutionExp: $1.org2.example.com:$2
# sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
# urlSubstitutionExp: ${1}.org2.example.com:${2}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org2.example.com
# mappedHost: peer0.org2.example.com

# - pattern: (\w+).org1.example.(\w+)
Expand All @@ -462,8 +462,8 @@ certificateAuthorities:
# mappedHost: peer0.org2.example.com
#
# - pattern: (\w+).example1.(\w+):(\d+)
# urlSubstitutionExp: $1.org1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.$2
# urlSubstitutionExp: ${1}.org1.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.${2}
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).org1.example.(\w+):(\d+)
Expand All @@ -488,8 +488,8 @@ certificateAuthorities:
# mappedHost: orderer.example.com
#
# - pattern: (\w+).example4.(\w+):(\d+)
# urlSubstitutionExp: $1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.example.$2
# urlSubstitutionExp: ${1}.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.example.${2}
# mappedHost: orderer.example.com
#
# certificateAuthority:
Expand Down
10 changes: 5 additions & 5 deletions test/fixtures/config/config_e2e_multiorg_bootstrap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ orderers:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -192,11 +192,11 @@ entityMatchers:
# the below matcher will allow dynamic discovery to use the anchor peer (peer0.org1.example.com)
# as a template for all org1 discovered peers config
- pattern: (\w+).org1.example.com:(\d+)
urlSubstitutionExp: $1.org1.example.com:$2
sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
urlSubstitutionExp: ${1}.org1.example.com:${2}
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.com
mappedHost: peer0.org1.example.com

- pattern: (\w+).org2.example.com:(\d+)
urlSubstitutionExp: $1.org2.example.com:$2
sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
urlSubstitutionExp: ${1}.org2.example.com:${2}
sslTargetOverrideUrlSubstitutionExp: ${1}.org2.example.com
mappedHost: peer0.org2.example.com
18 changes: 9 additions & 9 deletions test/fixtures/config/config_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ certificateAuthorities:
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.local.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.local.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.local.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand All @@ -468,13 +468,13 @@ certificateAuthorities:
#entityMatchers:
# peer:
# - pattern: (\w+).org1.example.com:(\d+)
# urlSubstitutionExp: $1.org1.example.com:$2
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
# urlSubstitutionExp: ${1}.org1.example.com:${2}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.com
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).org2.example.com:(\d+)
# urlSubstitutionExp: $1.org2.example.com:$2
# sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
# urlSubstitutionExp: ${1}.org2.example.com:${2}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org2.example.com
# mappedHost: peer0.org2.example.com

# - pattern: (\w+).org1.example.(\w+)
Expand All @@ -488,8 +488,8 @@ certificateAuthorities:
# mappedHost: peer0.org2.example.com
#
# - pattern: (\w+).example1.(\w+):(\d+)
# urlSubstitutionExp: $1.org1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.org1.example.$2
# urlSubstitutionExp: ${1}.org1.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.${2}
# mappedHost: peer0.org1.example.com
#
# - pattern: (\w+).org1.example.(\w+):(\d+)
Expand All @@ -514,8 +514,8 @@ certificateAuthorities:
# mappedHost: orderer.example.com
#
# - pattern: (\w+).example4.(\w+):(\d+)
# urlSubstitutionExp: $1.example.$2:$3
# sslTargetOverrideUrlSubstitutionExp: $1.example.$2
# urlSubstitutionExp: ${1}.example.${2}:${3}
# sslTargetOverrideUrlSubstitutionExp: ${1}.example.${2}
# mappedHost: orderer.example.com
#
# certificateAuthority:
Expand Down
14 changes: 7 additions & 7 deletions test/fixtures/config/overrides/local_entity_matchers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# so that properties can be mapped. Regex can be used for this purpose
# UrlSubstitutionExp can be empty which means the same network hostname will be used
# UrlSubstitutionExp can be given same as mapped peer url, so that mapped peer url can be used
# UrlSubstitutionExp can have golang regex matchers like $1.example.$2:$3 for pattern
# UrlSubstitutionExp can have golang regex matchers like ${1}.example.${2}:${3} for pattern
# like peer0.org1.example.com:1234 which converts peer0.org1.example.com to peer0.org1.example.com:1234
# sslTargetOverrideUrlSubstitutionExp follow in the same lines as
# SubstitutionExp for the fields gprcOptions.ssl-target-name-override respectively
Expand Down Expand Up @@ -41,14 +41,14 @@ entityMatchers:
mappedHost: peer1.org2.example.com

- pattern: (\w+).org1.example.(\w+):(\d+)
urlSubstitutionExp: localhost:$2
sslTargetOverrideUrlSubstitutionExp: $1.org1.example.com
mappedHost: $1.org1.example.com
urlSubstitutionExp: localhost:${2}
sslTargetOverrideUrlSubstitutionExp: ${1}.org1.example.com
mappedHost: ${1}.org1.example.com

- pattern: (\w+).org2.example.(\w+):(\d+)
urlSubstitutionExp: localhost:$2
sslTargetOverrideUrlSubstitutionExp: $1.org2.example.com
mappedHost: $1.org2.example.com
urlSubstitutionExp: localhost:${2}
sslTargetOverrideUrlSubstitutionExp: ${1}.org2.example.com
mappedHost: ${1}.org2.example.com

- pattern: (\w+):7051
urlSubstitutionExp: localhost:7051
Expand Down

0 comments on commit e0602c4

Please sign in to comment.