Peter Kurfer
7c2a41ad25
- apply changes in proxy plugin and TLS interceptor - add HTTPS proxy support - move ca-generation command to main app - minor refactoring to improve API stability - move mocks to extra packages to avoid cycling imports - fix bug in multi-port configuration - change HTTP proxy to redirect to HTTP mock instead of maintaining custom rules
42 lines
927 B
Go
42 lines
927 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
const (
|
|
targetSchemeConfigKey = "target.scheme"
|
|
targetIpAddressConfigKey = "target.ipAddress"
|
|
targetPortConfigKey = "target.port"
|
|
)
|
|
|
|
type redirectionTarget struct {
|
|
scheme string
|
|
ipAddress string
|
|
port uint16
|
|
}
|
|
|
|
func (rt redirectionTarget) host() string {
|
|
return fmt.Sprintf("%s:%d", rt.ipAddress, rt.port)
|
|
}
|
|
|
|
type httpProxyOptions struct {
|
|
redirectionTarget redirectionTarget
|
|
}
|
|
|
|
func loadFromConfig(config *viper.Viper) (options httpProxyOptions) {
|
|
|
|
config.SetDefault(targetSchemeConfigKey, "http")
|
|
config.SetDefault(targetIpAddressConfigKey, "127.0.0.1")
|
|
config.SetDefault(targetPortConfigKey, "80")
|
|
|
|
options = httpProxyOptions{
|
|
redirectionTarget{
|
|
scheme: config.GetString(targetSchemeConfigKey),
|
|
ipAddress: config.GetString(targetIpAddressConfigKey),
|
|
port: uint16(config.GetInt(targetPortConfigKey)),
|
|
},
|
|
}
|
|
return
|
|
}
|