Skip to content

Commit b6b884d

Browse files
sdmarshall79GitHub Enterprise
authored andcommitted
Remove bedrock (#521)
* Updates for Liberty Web Server configuration * Update mqwebexternal.xml.default
1 parent a5e8ef2 commit b6b884d

File tree

12 files changed

+51
-164
lines changed

12 files changed

+51
-164
lines changed

Dockerfile-server

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ COPY ha/native-ha.ini.tpl /etc/mqm/native-ha.ini.tpl
124124
# Copy web XML files
125125
COPY web /etc/mqm/web
126126
COPY etc/mqm/*.tpl /etc/mqm/
127-
RUN ln -s /run/mqwebuser.xml /etc/mqm/web/installations/Installation1/servers/mqweb/mqwebuser.xml \
127+
RUN ln -s /run/mqwebexternal.xml /etc/mqm/web/installations/Installation1/servers/mqweb/mqwebexternal.xml \
128128
&& ln -s /run/tls.xml /etc/mqm/web/installations/Installation1/servers/mqweb/tls.xml \
129129
&& ln -s /run/jvm.options /etc/mqm/web/installations/Installation1/servers/mqweb/configDropins/defaults/jvm.options \
130130
&& ln -s /run/15-tls.mqsc /etc/mqm/15-tls.mqsc \

cmd/runmqserver/main.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,19 @@ func doMain() error {
172172
return err
173173
}
174174

175-
// Copy default mqwebuser.xml file to ephemeral volume
176-
err = copy.CopyFile("/etc/mqm/web/installations/Installation1/servers/mqweb/mqwebuser.xml.default", "/run/mqwebuser.xml")
177-
if err != nil {
178-
logTermination(err)
179-
return err
175+
// Copy default mqwebexternal.xml file to ephemeral volume
176+
if *devFlag && os.Getenv("MQ_DEV") == "true" {
177+
err = copy.CopyFile("/etc/mqm/web/installations/Installation1/servers/mqweb/mqwebexternal.xml.dev", "/run/mqwebexternal.xml")
178+
if err != nil {
179+
logTermination(err)
180+
return err
181+
}
182+
} else {
183+
err = copy.CopyFile("/etc/mqm/web/installations/Installation1/servers/mqweb/mqwebexternal.xml.default", "/run/mqwebexternal.xml")
184+
if err != nil {
185+
logTermination(err)
186+
return err
187+
}
180188
}
181189

182190
// Copy default tls.xml file to ephemeral volume

cmd/runmqserver/webserver.go

Lines changed: 6 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"os"
2121
"os/exec"
2222
"path/filepath"
23-
"strings"
2423

2524
"github.com/ibm-messaging/mq-container/internal/copy"
2625
"github.com/ibm-messaging/mq-container/internal/mqtemplate"
@@ -61,84 +60,19 @@ func startWebServer(webKeystore, webkeystorePW, webTruststoreRef string) error {
6160
return nil
6261
}
6362

64-
func configureSSO(p12TrustStore tls.KeyStoreData, webKeystore string) (string, error) {
65-
requiredEnvVars := []string{}
66-
_, set := os.LookupEnv("MQ_ZEN_INTERNAL_ENDPOINT")
67-
if !set {
68-
// Ensure all required environment variables are set for SSO
69-
requiredEnvVars = []string{
70-
"MQ_OIDC_CLIENT_ID",
71-
"MQ_OIDC_CLIENT_SECRET",
72-
"MQ_OIDC_UNIQUE_USER_IDENTIFIER",
73-
"MQ_OIDC_AUTHORIZATION_ENDPOINT",
74-
"MQ_OIDC_TOKEN_ENDPOINT",
75-
"MQ_OIDC_JWK_ENDPOINT",
76-
"MQ_OIDC_ISSUER_IDENTIFIER",
77-
}
78-
} else {
79-
// Ensure all required environment variables are set for Zen SSO
80-
requiredEnvVars = []string{
81-
"MQ_ZEN_UNIQUE_USER_IDENTIFIER",
82-
"MQ_ZEN_INTERNAL_ENDPOINT",
83-
"MQ_ZEN_ISSUER_IDENTIFIER",
84-
"MQ_ZEN_AUDIENCES",
85-
"MQ_ZEN_CONTEXT_NAME",
86-
"MQ_ZEN_BASE_URI",
87-
"MQ_ZEN_CONTEXT_NAMESPACE",
88-
"IAM_URL",
89-
}
90-
}
91-
for _, envVar := range requiredEnvVars {
92-
if len(os.Getenv(envVar)) == 0 {
93-
return "", fmt.Errorf("%v must be set when MQ_BETA_ENABLE_SSO=true", envVar)
94-
}
95-
}
96-
97-
// Check mqweb directory exists
98-
const mqwebDir string = "/etc/mqm/web/installations/Installation1/servers/mqweb"
99-
_, err := os.Stat(mqwebDir)
100-
if err != nil {
101-
if os.IsNotExist(err) {
102-
return "", nil
103-
}
104-
return "", err
105-
}
106-
107-
const mqwebuserLink string = "/run/mqwebuser.xml"
108-
const mqwebuserTemplate string = mqwebDir + "/mqwebuser.xml.tpl"
109-
110-
// Process SSO template for generating file mqwebuser.xml
111-
adminUsers := strings.Split(os.Getenv("MQ_WEB_ADMIN_USERS"), "\n")
112-
err = mqtemplate.ProcessTemplateFile(mqwebuserTemplate, mqwebuserLink, map[string][]string{"AdminUser": adminUsers}, log)
113-
if err != nil {
114-
return "", err
115-
}
116-
117-
// Configure SSO TLS
118-
return tls.ConfigureWebKeystore(p12TrustStore, webKeystore)
119-
}
120-
12163
func configureWebServer(keyLabel string, p12Truststore tls.KeyStoreData) (string, error) {
122-
var webKeystore string
12364

124-
// Configure TLS for Web Console first if we have a certificate to use
65+
webKeystore := ""
66+
67+
// Configure TLS for the Web Console
12568
err := tls.ConfigureWebTLS(keyLabel, log)
12669
if err != nil {
12770
return "", err
12871
}
129-
if keyLabel != "" {
130-
webKeystore = keyLabel + ".p12"
131-
}
13272

133-
// Configure Single-Sign-On for the web server (if enabled)
134-
enableSSO := os.Getenv("MQ_BETA_ENABLE_SSO")
135-
if enableSSO == "true" || enableSSO == "1" {
136-
webKeystore, err = configureSSO(p12Truststore, webKeystore)
137-
if err != nil {
138-
return "", err
139-
}
140-
} else if keyLabel == "" && os.Getenv("MQ_GENERATE_CERTIFICATE_HOSTNAME") != "" {
141-
webKeystore, err = tls.ConfigureWebKeystore(p12Truststore, webKeystore)
73+
// Configure the Web Keystore
74+
if keyLabel != "" || os.Getenv("MQ_GENERATE_CERTIFICATE_HOSTNAME") != "" {
75+
webKeystore, err = tls.ConfigureWebKeystore(p12Truststore, keyLabel)
14276
if err != nil {
14377
return "", err
14478
}

internal/tls/tls_web.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,20 @@ func ConfigureWebTLS(keyLabel string, log *logger.Logger) error {
4848
}
4949

5050
// ConfigureWebKeyStore configures the Web Keystore
51-
func ConfigureWebKeystore(p12Truststore KeyStoreData, webKeystore string) (string, error) {
51+
func ConfigureWebKeystore(p12Truststore KeyStoreData, keyLabel string) (string, error) {
5252

53-
if webKeystore == "" {
54-
webKeystore = webKeystoreDefault
53+
webKeystore := webKeystoreDefault
54+
if keyLabel != "" {
55+
webKeystore = keyLabel + ".p12"
5556
}
5657
webKeystoreFile := filepath.Join(keystoreDirDefault, webKeystore)
5758

5859
// Check if a new self-signed certificate should be generated
59-
genHostName := os.Getenv("MQ_GENERATE_CERTIFICATE_HOSTNAME")
60-
if genHostName != "" {
60+
if keyLabel == "" {
61+
62+
// Get hostname to use for self-signed certificate
63+
genHostName := os.Getenv("MQ_GENERATE_CERTIFICATE_HOSTNAME")
64+
6165
// Create the Web Keystore
6266
newWebKeystore := keystore.NewPKCS12KeyStore(webKeystoreFile, p12Truststore.Password)
6367
err := newWebKeystore.Create()

setup-image.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ sed -i 's/password\t\[success=1 default=ignore\]\tpam_unix\.so obscure sha512/pa
6969
$RPM && (rpm -q --all | sort) || true
7070
$UBUNTU && (dpkg --list | sort) || true
7171

72-
#Update the license file to include UBI 8 instead of UBI 7
72+
# Update the license file to include UBI 8 instead of UBI 7
7373
sed -i 's/v7.0/v8.0/g' /opt/mqm/licenses/non_ibm_license.txt
7474

7575
# Copy MQ Licenses into the correct location
7676
mkdir -p /licenses
7777
cp /opt/mqm/licenses/*.txt /licenses/
78+
79+
# Update server.xml to include mqwebexternal.xml
80+
sed -i 's|<include location="mqwebuser.xml"/>|<include location="mqwebexternal.xml"/>\n <include location="mqwebuser.xml"/>|' /opt/mqm/samp/web/server.xml

test/container/devconfig_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ func TestDevConfigDisabled(t *testing.T) {
172172
id := runContainerWithPorts(t, cli, &containerConfig, []int{9443})
173173
defer cleanContainer(t, cli, id)
174174
waitForReady(t, cli, id)
175-
waitForWebReady(t, cli, id, insecureTLSConfig)
176175
rc, _ := execContainer(t, cli, id, "", []string{"bash", "-c", "echo 'display qlocal(DEV*)' | runmqsc"})
177176
if rc == 0 {
178177
t.Errorf("Expected DEV queues to be missing")

test/container/docker_api_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1874,7 +1874,7 @@ func TestReadOnlyRootFilesystem(t *testing.T) {
18741874

18751875
messageToSearch := "read-only file system"
18761876
l := inspectLogs(t, cli, ctrID)
1877-
if !strings.Contains(l, messageToSearch) {
1877+
if !strings.Contains(strings.ToLower(l), messageToSearch) {
18781878
t.Fatalf("Expected 'read-only file system' in the logs but was not found. The output was: %s", l)
18791879
}
18801880
}
@@ -1947,8 +1947,8 @@ func TestRORFSVerifySymLinks(t *testing.T) {
19471947
symLinkName string
19481948
}{
19491949
{
1950-
origin: "/etc/mqm/web/installations/Installation1/servers/mqweb/mqwebuser.xml",
1951-
symLinkName: "-> /run/mqwebuser.xml",
1950+
origin: "/etc/mqm/web/installations/Installation1/servers/mqweb/mqwebexternal.xml",
1951+
symLinkName: "-> /run/mqwebexternal.xml",
19521952
},
19531953
{
19541954
origin: "/etc/mqm/web/installations/Installation1/servers/mqweb/tls.xml",
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<server>
3+
<featureManager>
4+
<feature>appSecurity-2.0</feature>
5+
</featureManager>
6+
<variable name="httpHost" value="*"/>
7+
<variable name="managementMode" value="externallyprovisioned"/>
8+
<variable name="mqConsoleRemoteSupportEnabled" value="false"/>
9+
<variable name="mqConsoleEnableUnsafeInline" value="true"/>
10+
<jndiEntry jndiName="mqConsoleDefaultCCDTHostname" value="${env.MQ_CONSOLE_DEFAULT_CCDT_HOSTNAME}"/>
11+
<jndiEntry jndiName="mqConsoleDefaultCCDTPort" value="${env.MQ_CONSOLE_DEFAULT_CCDT_PORT}"/>
12+
<include location="tls.xml"/>
13+
</server>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<server></server>

0 commit comments

Comments
 (0)