Skip to content

Commit 6e54884

Browse files
authored
Merge pull request #265 from ODMDev/vnext-release
ICP4BA 2101 release
2 parents 2e27a04 + af9adff commit 6e54884

35 files changed

+282
-96
lines changed

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ FROMLIBERTY=ibmcom/websphere-liberty:20.0.0.6-kernel-java8-ibmjava-ubi
1818

1919
# Postgres Version
2020
FROMPOSTGRES=postgres:12
21-
POSTGRESUID=999
21+
POSTGRESUID=999

common/config/authOidc/authFilters.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
</authFilter>
4848
<!-- Note: The apiAuthFilter should be complementary to the browserAuthFilter -->
4949
<authFilter id="apiAuthFilter">
50-
<requestHeader id="allowBasicAuth" matchType="notContain" name="Authorization" value="Basic" />
50+
<!-- This line is to support OIDC and BA by detecting the header -->
51+
<requestHeader id="allowBasicAuth" matchType="contains" name="Authorization" value="Bearer" />
5152
<requestUrl id="apiurl" matchType="contains" urlPattern=
5253
"/res/auth|/res/repositoryService|/teamserver/rts-sync|/teamserver/remoting|/teamserver/servlet/SessionServlet|/decisioncenter/rts-sync|/decisioncenter/remoting|/decisioncenter/servlet/SessionServlet|/decisioncenter-api/v1|/DecisionRunner/api|/DecisionRunner/apiauth|/DecisionRunner/serverinfo|/testing/sspService|/testing/serverinfo"/>
5354
</authFilter>

common/config/authOidc/resAdministrators.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<user name="resAdmUser1" access-id="${odm.resAdministrators.user1}"/>
2-
<user name="resAdmUser2" access-id="${odm.resAministrators.user2}"/>
2+
<user name="resAdmUser2" access-id="${odm.resAdministrators.user2}"/>
33
<user name="resAdmUser3" access-id="${odm.resAdministrators.user3}"/>
44
<group name="resAdmGroup1" access-id="${odm.resAdministrators.group1}"/>
55
<group name="resAdmGroup2" access-id="${odm.resAdministrators.group2}"/>

common/config/authOidc/rtsAdministrators.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<user name="rtsAdmUser1" access-id="${odm.rtsAdministrators.user1}"/>
2-
<user name="rtsAdmUser2" access-id="${odm.rtsAministrators.user2}"/>
2+
<user name="rtsAdmUser2" access-id="${odm.rtsAdministrators.user2}"/>
33
<user name="rtsAdmUser3" access-id="${odm.rtsAdministrators.user3}"/>
44
<group name="rtsAdmGroup1" access-id="${odm.rtsAdministrators.group1}"/>
55
<group name="rtsAdmGroup2" access-id="${odm.rtsAdministrators.group2}"/>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
### Metering properties ###
2+
com.ibm.rules.metering.server.url=METERING_SERVER_URL
3+
# API key to identify the user in IBM Connect to Cloud service
4+
# Mandatory
5+
com.ibm.rules.metering.api.key=None
6+
# Identifier to use to identifier the Decision Center instance
7+
# Optional: If not specified, the value is automatically computed
8+
com.ibm.rules.metering.instance.identifier=METERING_INSTANCE_ID
9+
# Period of time to wait between two usage reports to send to IBM Connect to Cloud service (en milliseconds)
10+
# Optional: If not specified, the value is 15 minutes
11+
com.ibm.rules.metering.send.period=METERING_SEND_PERIOD
12+
# If true, send usages to the IBM Connect to Cloud service
13+
com.ibm.rules.metering.send.usages=true
14+
# If true, log usages on the filesystem
15+
com.ibm.rules.metering.log.usages=true
16+
### End of metering properties ###

common/script/configureMetering.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/bash
2+
3+
if [ -s "/config/pluginconfig/plugin-configuration.properties" ]
4+
then
5+
echo "Configure metering using /config/pluginconfig/plugin-configuration.properties provided config"
6+
elif [ -n "$METERING_SERVER_URL" ]
7+
then
8+
echo "Configure metering using /config/metering-template.properties template"
9+
echo "Set METERING_SERVER_URL with $METERING_SERVER_URL"
10+
sed -i 's|METERING_SERVER_URL|'$METERING_SERVER_URL'|g' /config/metering-template.properties
11+
if [ -n "$RELEASE_NAME" ]
12+
then
13+
echo "Set METERING_INSTANCE_ID with $RELEASE_NAME"
14+
sed -i 's|METERING_INSTANCE_ID|'$RELEASE_NAME'|g' /config/metering-template.properties
15+
else
16+
echo "Set METERING_INSTANCE_ID with $HOSTNAME"
17+
sed -i 's|METERING_INSTANCE_ID|'$HOSTNAME'|g' /config/metering-template.properties
18+
fi
19+
20+
if [ -n "$METERING_SEND_PERIOD" ]
21+
then
22+
echo "Set METERING_SEND_PERIOD with $METERING_SEND_PERIOD milliseconds"
23+
sed -i 's|METERING_SEND_PERIOD|'$METERING_SEND_PERIOD'|g' /config/metering-template.properties
24+
else
25+
echo "Set METERING_SEND_PERIOD with 900000 milliseconds"
26+
sed -i 's|METERING_SEND_PERIOD|900000|g' /config/metering-template.properties
27+
fi
28+
29+
mkdir /config/pluginconfig
30+
cp /config/metering-template.properties /config/pluginconfig/plugin-configuration.properties
31+
fi

common/script/configureSwidTag.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,22 @@ then
3939
removeAllSwidTag ibm.com_IBM_ODM_Server_for_Non-Production-*.swidtag
4040
fi
4141
echo "ODM configuration : remove all DBAMC Swidtag"
42-
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4Auto*.swidtag
43-
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4Auto_-_Non_Prod*.swidtag
42+
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4BA*.swidtag
43+
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4BA_-_Non_Prod*.swidtag
4444
else
4545
if [ -n "$DEPLOY_FOR_PRODUCTION" ]
4646
then
4747
if [[ "$DEPLOY_FOR_PRODUCTION" =~ "TRUE" ]]
4848
then
4949
echo "DEPLOY_FOR_PRODUCTION is true then DBAMC production configuration : remove DBAMC non production Swidtag"
50-
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4Auto_-_Non_Prod-*.swidtag
50+
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4BA_-_Non_Prod-*.swidtag
5151
else
5252
echo "DEPLOY_FOR_PRODUCTION is false then DBAMC non production configuration : remove DBAMC production Swidtag"
53-
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4Auto-*.swidtag
53+
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4BA-*.swidtag
5454
fi
5555
else
5656
echo "DEPLOY_FOR_PRODUCTION not set then DBAMC production configuration : remove DBAMC non production Swidtag"
57-
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4Auto_-_Non_Prod-*.swidtag
57+
removeAllSwidTag ibm.com_Operational_Decision_Manager_Containers_-_CP4BA_-_Non_Prod-*.swidtag
5858
fi
5959
echo "DBAMC configuration : remove all ODM Swidtag"
6060
removeAllSwidTag ibm.com_IBM_ODM_Server*.swidtag

common/script/configureTlsSecurity.sh

100644100755
Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,25 +48,45 @@ else
4848
fi
4949
# End - Configuration for the TLS security
5050

51-
if [ -f "/config/security/ldap.jks" ]
51+
if [ -f "/config/ldap/ldap.jks" ]
5252
then
5353
if [ -n "$LDAP_TRUSTSTORE_PASSWORD" ]
5454
then
55-
echo "import /config/security/ldap.jks in trustore using provided LDAP truststore password"
55+
echo "import /config/ldap/ldap.jks in trustore using provided LDAP truststore password"
5656
else
57-
echo "import /config/security/ldap.jks in trustore using default LDAP truststore password"
57+
echo "import /config/ldap/ldap.jks in trustore using default LDAP truststore password"
5858
LDAP_TRUSTSTORE_PASSWORD=changeit
5959
fi
6060

6161
i=0
62-
mapfile -t trust_list < <(keytool -list -v -keystore /config/security/ldap.jks -storepass $LDAP_TRUSTSTORE_PASSWORD | grep "Alias name" | awk 'NF>1{print $NF}')
62+
mapfile -t trust_list < <(keytool -list -v -keystore /config/ldap/ldap.jks -storepass $LDAP_TRUSTSTORE_PASSWORD | grep "Alias name" | awk 'NF>1{print $NF}')
6363
for trust_file in "${trust_list[@]}"
6464
do
65-
keytool -changealias -alias ${trust_file} -destalias "LDAP_ALIAS_FOR_ODM_"$i -keystore /config/security/ldap.jks -storepass $LDAP_TRUSTSTORE_PASSWORD
65+
keytool -changealias -alias ${trust_file} -destalias "LDAP_ALIAS_FOR_ODM_"$i -keystore /config/ldap/ldap.jks -storepass $LDAP_TRUSTSTORE_PASSWORD
6666
((i=i+1))
6767
done
68-
keytool -importkeystore -srckeystore /config/security/ldap.jks -destkeystore /config/security/truststore.jks -srcstorepass $LDAP_TRUSTSTORE_PASSWORD -deststorepass $DEFAULT_TRUSTSTORE_PASSWORD
68+
keytool -importkeystore -srckeystore /config/ldap/ldap.jks -destkeystore /config/security/truststore.jks -srcstorepass $LDAP_TRUSTSTORE_PASSWORD -deststorepass $DEFAULT_TRUSTSTORE_PASSWORD
6969

7070
else
71-
echo "no /config/security/ldap.jks file"
71+
echo "no /config/ldap/ldap.jks file"
72+
fi
73+
74+
# This part allow to import a list of PEM certificate in the JVM
75+
echo "Importing trusted certificates $dir"
76+
CERTDIR="/config/security/trusted-cert-volume/"
77+
if [ -d $CERTDIR ]; then
78+
cd $CERTDIR
79+
for dir in *; do
80+
echo "Importing trusted certificates $dir"
81+
if [ -d $dir ]; then
82+
if [ -f $dir/tls.crt ]; then
83+
# Don't know if we need to delete the Alias. If don't delete it there is an error
84+
keytool -delete -alias 0trust_$dir -storepass $DEFAULT_TRUSTSTORE_PASSWORD -keystore /config/security/truststore.jks > /dev/null
85+
keytool -import -v -trustcacerts -alias 0trust_$dir -file $dir/tls.crt -keystore /config/security/truststore.jks -storepass $DEFAULT_TRUSTSTORE_PASSWORD -noprompt
86+
else
87+
echo "Couldn't find certificate $dir/tls.crt skipping this certificate "
88+
fi
89+
fi
90+
done
91+
echo "done"
7292
fi

common/script/enableMetering.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ then
55
echo "enable rules metering"
66
cd /config/apps/DecisionService.war/WEB-INF/classes;
77
sed -i 's/{pluginClass=HTDS}/{pluginClass=Metering,enable=true},{pluginClass=HTDS}/g' ra.xml
8+
9+
$SCRIPT/configureMetering.sh
810
fi

common/script/installPostgres.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
# Install the driver for PostgreSQL
44
echo "Install the driver for postgreSQL"
55
cd /tmp
6-
curl -O -s https://jdbc.postgresql.org/download/postgresql-42.2.16.jar
6+
curl -O -s https://jdbc.postgresql.org/download/postgresql-42.2.18.jar
77
mv postgres* /config/resources

decisioncenter/config/jvm.options

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
-Djavax.net.ssl.trustStore=/config/security/truststore.jks
2-
-Djavax.net.ssl.trustStorePassword=__TRUSTSTORE_PASSWORD__
31
-Duser.language=en
42
-Duser.country=US

decisioncenter/config/new-decisioncenter-configuration.properties

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ system.com.ibm.rules.authentication.scheme=oidc
3333
system.com.ibm.rules.authentication.oidcconfig=OdmOidcProviders.json:OPENID_PROVIDER
3434

3535
# Define the referer whitelist patterns
36-
system.com.ibm.rules.decisioncenter.referer-whitelist-patterns=OPENID_SERVER_URL/*
36+
system.com.ibm.rules.decisioncenter.referer-whitelist-patterns=DC_REFERER_LIST
3737

3838
# Define a list of servers separated by semi colon to add to Decision Center configuration
3939
# format: <name>|<url>|<type>|<description>|<groups> where
@@ -95,8 +95,6 @@ property.teamserver.includeDebugInfoInRulesetArchive=true
9595
com.ibm.rules.decisioncenter.ldap.sync.users-and-groups=ldap-sync-mode
9696

9797
### End of LDAP Sync properties ###
98-
99-
10098
### Metering properties ###
10199

102100
# If true, enable the service to collect usages of Decision Center.

decisioncenter/script/jvmOptions.sh

Lines changed: 0 additions & 45 deletions
This file was deleted.

decisioncenter/script/rundc.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ $SCRIPT/updateDatasource.sh
2121

2222
$SCRIPT/configureSwidTag.sh
2323

24-
$SCRIPT/jvmOptions.sh
25-
2624
$SCRIPT/setTimeZone.sh
2725

2826
. $SCRIPT/setUTF8Locale.sh

decisioncenter/script/updateDCConfigurations.sh

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,32 @@ then
106106
sed -i 's|"OPENID_PROVIDER"|'null'|g' $DC_SERVER_CONFIG
107107
fi
108108
echo "OAuth config : set AUTH_SCHEME to oidc in /config/new-decisioncenter-configuration.properties"
109-
echo "OAuth config : set OPENID_SERVER_URL to $OPENID_SERVER_URL in /config/new-decisioncenter-configuration.properties"
110-
sed -i 's|OPENID_SERVER_URL|'$OPENID_SERVER_URL'|g' /config/new-decisioncenter-configuration.properties
109+
110+
111+
if [ -n "$DC_REFERER_LIST" ]
112+
then
113+
echo "OAuth config : provided DC_REFERER_LIST"
114+
else
115+
echo "OAuth config : build DC_REFERER_LIST"
116+
IFS=','
117+
DC_REFERER_LIST=""
118+
ALLOWED_DOMAINS_LIST=$(grep OPENID_ALLOWED_DOMAINS /config/authOidc/openIdParameters.properties | sed "s/OPENID_ALLOWED_DOMAINS=//g")
119+
read -ra ADDR <<< "${ALLOWED_DOMAINS_LIST}"
120+
declare -i j=1
121+
for i in "${ADDR[@]}"; do
122+
DC_REFERER_LIST=${DC_REFERER_LIST}"https://"$i"/*"
123+
if ((j < "${#ADDR[@]}")); then
124+
DC_REFERER_LIST=${DC_REFERER_LIST}"__COMMA__"
125+
j=j+1
126+
fi
127+
done
128+
fi
129+
130+
echo "OAuth config : set DC_REFERER_LIST to $DC_REFERER_LIST in /config/new-decisioncenter-configuration.properties"
131+
sed -i 's|DC_REFERER_LIST|'$DC_REFERER_LIST'|g' /config/new-decisioncenter-configuration.properties
132+
# Issue with DC_REFERER_LIST when built with a comma
133+
sed -i 's/__COMMA__/,/g' /config/new-decisioncenter-configuration.properties
134+
111135
echo "replace rtsAdministators/rtsConfigManagers/rtsInstallers group in /config/application.xml"
112136
sed -i $'/<group name="rtsAdministrators"/{e cat /config/authOidc/rtsAdministrators.xml\n}' /config/application.xml
113137
sed -i '/<group name="rtsAdministrators"/d' /config/application.xml
@@ -120,8 +144,16 @@ else
120144
echo "No provided /config/authOidc/openIdParameters.properties"
121145
echo "BASIC_AUTH config : set provider to null in $DC_SERVER_CONFIG"
122146
sed -i 's|"OPENID_PROVIDER"|'null'|g' $DC_SERVER_CONFIG
123-
echo "BASIC_AUTH config : remove entry with OPEN_ID_SERVER_URL in /config/new-decisioncenter-configuration.properties"
124-
sed -i '/OPENID_SERVER_URL/d' /config/new-decisioncenter-configuration.properties
147+
148+
if [ -n "$DC_REFERER_LIST" ]
149+
then
150+
echo "BASIC_AUTH config : provided DC_REFERER_LIST"
151+
sed -i 's|DC_REFERER_LIST|'$DC_REFERER_LIST'|g' /config/new-decisioncenter-configuration.properties
152+
else
153+
echo "BASIC_AUTH config : remove entry with DC_REFERER_LIST in /config/new-decisioncenter-configuration.properties"
154+
sed -i '/DC_REFERER_LIST/d' /config/new-decisioncenter-configuration.properties
155+
fi
156+
125157
echo "BASIC_AUTH config : remove entry SCHEME with oidc in /config/new-decisioncenter-configuration.properties"
126158
sed -i '/scheme=oidc/d' /config/new-decisioncenter-configuration.properties
127159
echo "BASIC_AUTH config : remove oidc provider entry in /config/new-decisioncenter-configuration.properties"
@@ -239,6 +271,39 @@ else
239271
sed -i 's|group-file|''|g' $APPS/decisioncenter.war/WEB-INF/classes/config/decisioncenter-configuration.properties
240272
fi
241273

274+
if [ -n "$COM_IBM_RULES_METERING_ENABLE" ]
275+
then
276+
echo "enable rules metering"
277+
if [ -s "/config/pluginconfig/plugin-configuration.properties" ]
278+
then
279+
echo "Configure metering using /config/pluginconfig/plugin-configuration.properties provided config"
280+
cat /config/pluginconfig/plugin-configuration.properties >> $APPS/decisioncenter.war/WEB-INF/classes/config/decisioncenter-configuration.properties
281+
elif [ -n "$METERING_SERVER_URL" ]
282+
then
283+
echo "Set METERING_SERVER_URL with $METERING_SERVER_URL"
284+
sed -i 's|METERING_SERVER_URL|'$METERING_SERVER_URL'|g' /config/metering-template.properties
285+
if [ -n "$RELEASE_NAME" ]
286+
then
287+
echo "Set METERING_INSTANCE_ID with $RELEASE_NAME"
288+
sed -i 's|METERING_INSTANCE_ID|'$RELEASE_NAME'|g' /config/metering-template.properties
289+
else
290+
echo "Set METERING_INSTANCE_ID with $HOSTNAME"
291+
sed -i 's|METERING_INSTANCE_ID|'$HOSTNAME'|g' /config/metering-template.properties
292+
fi
293+
294+
if [ -n "$METERING_SEND_PERIOD" ]
295+
then
296+
echo "Set METERING_SEND_PERIOD with $METERING_SEND_PERIOD milliseconds"
297+
sed -i 's|METERING_SEND_PERIOD|'$METERING_SEND_PERIOD'|g' /config/metering-template.properties
298+
else
299+
echo "Set METERING_SEND_PERIOD with 900000 milliseconds"
300+
sed -i 's|METERING_SEND_PERIOD|900000|g' /config/metering-template.properties
301+
fi
302+
303+
cat /config/metering-template.properties >> $APPS/decisioncenter.war/WEB-INF/classes/config/decisioncenter-configuration.properties
304+
fi
305+
fi
306+
242307
if [ -n "$ODM_CONTEXT_ROOT" ]
243308
then
244309
sed -i 's|http://localhost:9060/decisionmodel|'http://localhost:9060$ODM_CONTEXT_ROOT/decisionmodel'|g' $APPS/decisioncenter.war/WEB-INF/classes/config/decisioncenter-configuration.properties

decisionserver/decisionrunner/config/application.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
</security-role>
1111
</application-bnd>
1212
<classloader>
13+
<commonLibrary>
14+
<folder dir="/config/pluginconfig" id="plugindir" />
15+
</commonLibrary>
1316
<commonLibrary>
1417
<folder dir="/config/extension" id="extensiondir" />
1518
</commonLibrary>

decisionserver/decisionrunner/script/enableDRMetering.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ then
55
echo "enable rules metering"
66
cd /config/apps/DecisionRunner.war/WEB-INF/classes;
77
sed -i 's/{pluginClass=DVS}/{pluginClass=Metering,enable=true},{pluginClass=DVS}/g' ra.xml
8+
9+
$SCRIPT/configureMetering.sh
810
fi

decisionserver/decisionserverconsole/config/application.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</application-bnd>
2424
<classloader>
2525
<commonLibrary>
26-
<folder dir="/config/baiemitterconfig" id="odmbaidir" />
26+
<folder dir="/config/pluginconfig" id="plugindir" />
2727
</commonLibrary>
2828
</classloader>
2929
</application>

decisionserver/decisionserverconsole/script/run.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ then
77
$SCRIPT/customStart.sh
88
fi
99

10+
$SCRIPT/enableMetering.sh
11+
1012
$SCRIPT/updateDSCConfigurations.sh
1113

1214
$SCRIPT/configureTlsSecurity.sh
@@ -17,8 +19,6 @@ $SCRIPT/updateDatasource.sh
1719

1820
$SCRIPT/updateDSRConfigurations.sh
1921

20-
$SCRIPT/enableMetering.sh
21-
2222
$SCRIPT/configureSwidTag.sh
2323

2424
$SCRIPT/setTimeZone.sh

decisionserver/decisionserverconsole/script/updateDSCConfigurations.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if [ -n "$DECISION_SERVICE_URL" ]; then
66
fi
77

88
if [ -f "/config/baiemitterconfig/plugin-configuration.properties" ]; then
9-
echo "Enable BAI Emitter Plugin"
9+
echo "Enable BAI Emitter Plugin"
1010
sed -i 's/{pluginClass=HTDS}/&,{pluginClass=ODMEmitterForBAI}/' ra.xml
1111
fi
1212

0 commit comments

Comments
 (0)