in pkg/trait/jvm.go [285:342]
func (t *jvmTrait) prepareHTTPProxy(container *corev1.Container) ([]string, error) {
var args []string
//nolint:dupl,nestif
if HTTPProxy := envvar.Get(container.Env, "HTTP_PROXY"); HTTPProxy != nil {
u, err := url.Parse(HTTPProxy.Value)
if err != nil {
return args, err
}
if !util.StringSliceContainsAnyOf(t.Options, "http.proxyHost") {
args = append(args, fmt.Sprintf("-Dhttp.proxyHost=%q", u.Hostname()))
}
if port := u.Port(); !util.StringSliceContainsAnyOf(t.Options, "http.proxyPort") && port != "" {
args = append(args, fmt.Sprintf("-Dhttp.proxyPort=%q", u.Port()))
}
if user := u.User; !util.StringSliceContainsAnyOf(t.Options, "http.proxyUser") && user != nil {
args = append(args, fmt.Sprintf("-Dhttp.proxyUser=%q", user.Username()))
if password, ok := user.Password(); !util.StringSliceContainsAnyOf(t.Options, "http.proxyUser") && ok {
args = append(args, fmt.Sprintf("-Dhttp.proxyPassword=%q", password))
}
}
}
//nolint:dupl,nestif
if HTTPSProxy := envvar.Get(container.Env, "HTTPS_PROXY"); HTTPSProxy != nil {
u, err := url.Parse(HTTPSProxy.Value)
if err != nil {
return args, err
}
if !util.StringSliceContainsAnyOf(t.Options, "https.proxyHost") {
args = append(args, fmt.Sprintf("-Dhttps.proxyHost=%q", u.Hostname()))
}
if port := u.Port(); !util.StringSliceContainsAnyOf(t.Options, "https.proxyPort") && port != "" {
args = append(args, fmt.Sprintf("-Dhttps.proxyPort=%q", u.Port()))
}
if user := u.User; !util.StringSliceContainsAnyOf(t.Options, "https.proxyUser") && user != nil {
args = append(args, fmt.Sprintf("-Dhttps.proxyUser=%q", user.Username()))
if password, ok := user.Password(); !util.StringSliceContainsAnyOf(t.Options, "https.proxyUser") && ok {
args = append(args, fmt.Sprintf("-Dhttps.proxyPassword=%q", password))
}
}
}
if noProxy := envvar.Get(container.Env, "NO_PROXY"); noProxy != nil {
if !util.StringSliceContainsAnyOf(t.Options, "http.nonProxyHosts") {
// Convert to the format expected by the JVM http.nonProxyHosts system property
hosts := strings.Split(strings.ReplaceAll(noProxy.Value, " ", ""), ",")
for i, host := range hosts {
if strings.HasPrefix(host, ".") {
hosts[i] = strings.Replace(host, ".", "*.", 1)
}
}
args = append(args, fmt.Sprintf("-Dhttp.nonProxyHosts=%q", strings.Join(hosts, "|")))
}
}
return args, nil
}