diff --git a/Dockerfile b/Dockerfile index 337dc0877f4eb1ecf6908b905f03ed2af9db5dcd..f25f44925e397acc5786f407bb18d3b547dd337e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ # this Dockerfile has to be executed from the project's parent folder, like this: # sudo docker build --tag vips/logic:TEST01 -f VIPSLogic/Dockerfile . -## Challenge: database connection to "localhost" ?? IP address? What?? :-) # the first stage of our build will use a maven 3.6 parent image FROM maven:3.6-openjdk-11 AS MAVEN_BUILD @@ -14,7 +13,7 @@ RUN cd VIPSCommon && mvn clean install # copy the pom and src code to the container COPY ./VIPSLogic ./ -# package our application code +# Build our application code RUN mvn clean install # Used this as a template: https://github.com/jboss-dockerfiles/wildfly/blob/master/Dockerfile @@ -27,6 +26,9 @@ ENV WILDFLY_VERSION 20.0.0.Final ENV WILDFLY_SHA1 3cab3453c9270c662766417adf16c27806124361 ENV JBOSS_HOME /opt/jboss/wildfly +# Set the VIPSLogic version (must correspond with pom.xml) +ENV APP_VERSION=2022.1 + USER root # Add the WildFly distribution to /opt, and make wildfly the owner of the extracted tar content @@ -41,29 +43,34 @@ RUN cd $HOME \ && chmod -R g+rw ${JBOSS_HOME} # copy only the artifacts we need from the first stage and discard the rest -COPY --from=MAVEN_BUILD /target/VIPSLogic-1.0-SNAPSHOT.war /VIPSLogic-1.0-SNAPSHOT.war +COPY --from=MAVEN_BUILD /target/VIPSLogic-${APP_VERSION}.war /VIPSLogic-${APP_VERSION}.war COPY --from=MAVEN_BUILD /root/.m2 /root/.m2 # Use the sample wildfly_config/standalone.xml, add the correct configs, and copy to the parent folder of the # VIPSLogic source folder +# For e.g database setup: Remember that the Docker host's hostname is host.docker.internal on Windows and +# 172.17.0.1 if you are using default networking on Linux COPY ./standalone.xml ${JBOSS_HOME}/standalone/configuration/standalone.xml -#TODO Download and install the required modules -# PostgreSQL and PostGIS jdbc drivers + +# PostgreSQL and PostGIS JDBC drivers +# Please note that the versions must match the ones in VIPSLogic's pom.xml. +ENV POSTGRES_VERSION=42.3.1 +ENV POSTGIS_VERSION=2.5.1 RUN mkdir -p ${JBOSS_HOME}/modules/org/postgresql/main RUN echo '<?xml version="1.0" encoding="UTF-8"?>\ <module xmlns="urn:jboss:module:1.0" name="org.postgresql">\ <resources>\ - <resource-root path="postgresql-42.2.18.jar"/>\ - <resource-root path="postgis-jdbc-2.2.2.jar"/>\ + <resource-root path="postgresql-${POSTGRES_VERSION}.jar"/>\ + <resource-root path="postgis-jdbc-${POSTGIS_VERSION}.jar"/>\ </resources>\ <dependencies>\ <module name="javax.api"/>\ <module name="javax.transaction.api"/>\ </dependencies>\ </module>' > ${JBOSS_HOME}/modules/org/postgresql/main/module.xml -RUN cp /root/.m2/repository/org/postgresql/postgresql/42.2.18/postgresql-42.2.18.jar ${JBOSS_HOME}/modules/org/postgresql/main -RUN cp /root/.m2/repository/net/postgis/postgis-jdbc/2.2.2/postgis-jdbc-2.2.2.jar ${JBOSS_HOME}/modules/org/postgresql/main +RUN cp /root/.m2/repository/org/postgresql/postgresql/${POSTGRES_VERSION}/postgresql-${POSTGRES_VERSION}.jar ${JBOSS_HOME}/modules/org/postgresql/main +RUN cp /root/.m2/repository/net/postgis/postgis-jdbc/${POSTGIS_VERSION}/postgis-jdbc-${POSTGIS_VERSION}.jar ${JBOSS_HOME}/modules/org/postgresql/main -RUN ln -s /VIPSLogic-1.0-SNAPSHOT.war ${JBOSS_HOME}/standalone/deployments/VIPSLogic-1.0-SNAPSHOT.war +RUN ln -s /VIPSLogic-${APP_VERSION}.war ${JBOSS_HOME}/standalone/deployments/VIPSLogic-${APP_VERSION}.war # Ensure signals are forwarded to the JVM process correctly for graceful shutdown ENV LAUNCH_JBOSS_IN_BACKGROUND true diff --git a/docs/index.md b/docs/index.md index f32feacf0fd796d36218407a0c9eb01c38f3fa2d..7833d8ce77cd35a9ed263b307666ca18b4f814ee 100644 --- a/docs/index.md +++ b/docs/index.md @@ -71,6 +71,8 @@ in the standalone.xml file. Examples for this is available in the `wildfly_confi `sudo docker run --publish 18080:8080 --add-host=vipslogicdb:[YOUR_HOSTS_IP_ADDRESS] --detach --name vipslogic vips/logic:TEST01` +`172.17.0.1` is the default IP adress for the Docker host if you are running on Linux. Change accordingly. On Mac and Windows you should be able to swap this for `host.docker.internal`. + #### Troubleshooting by logging in `sudo docker exec -it <containername> bash` diff --git a/wildfly_config_examples/20.0.0/standalone.xml b/wildfly_config_examples/20.0.0/standalone.xml index e2ff43e3aa77736eb1c41745afa2f93d8384da4f..73f472b30ef21790824f271142f08c5a914d4231 100644 --- a/wildfly_config_examples/20.0.0/standalone.xml +++ b/wildfly_config_examples/20.0.0/standalone.xml @@ -56,13 +56,15 @@ <property name="no.nibio.vips.logic.AVAILABLE_LANGUAGES" value="en,nb,zh_CN"/> <property name="no.nibio.vips.logic.DISABLE_MESSAGING_SYSTEM" value="true"/> <property name="no.nibio.vips.logic.weather.VIPS_WEATHER_PROXY_BASE_URL" value="http://localhost:8080/VIPSWeatherProxy"/> - <property name="no.nibio.vips.logic.weather.FIELDCLIMATE_API_USERNAME" value="nibiovips"/> - <property name="no.nibio.vips.logic.weather.FIELDCLIMATE_API_PASSWORD" value="XXXXXXXXXXXX"/> - <property name="no.nibio.vips.logic.weather.FIELDCLIMATE_API_CLIENT_ID" value="XXXXXXXXXXXXXXXX"/> - <property name="no.nibio.vips.logic.weather.FIELDCLIMATE_API_CLIENT_SECRET" value="XXXXXXXXXXXXXXXXXXXXXX"/> - <property name="no.nibio.vips.logic.weather.METNOTHREDDS_TMP_FILE_PATH" value="/home/tdeveloper/vips/projects/2017_SpotIT/Task 3.2/"/> <property name="no.nibio.vips.logic.USER_COUNTRY_CODES" value="NO,SE,BA,LV,US,FI,LT,CH"/> <property name="no.nibio.vips.logic.AVAILABLE_TIMEZONES" value="Europe/Oslo,Europe/Zurich,Europe/Stockholm,Europe/Vilnius,Europe/Helsinki"/> + <property name="no.nibio.vips.logic.messaging.dist.SIMULATE_MAIL_SENDING" value="true"/> + <property name="no.nibio.vips.logic.messaging.dist.MAIL_SENDER_ADDRESS" value="noreply@foobar.com"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_SERVER" value="smsgateway.foobar.com"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_USERNAME" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_PASSWORD" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_SENDER_SRC" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.TRAFFIC_LOG_DIRECTORY" value="/var/log/trafficLog/"/> </system-properties> <management> <security-realms> diff --git a/wildfly_config_examples/25.0.0/standalone.xml b/wildfly_config_examples/25.0.0/standalone.xml new file mode 100644 index 0000000000000000000000000000000000000000..381c74bf1cf16d362f85f70fd7cae8526ec64cfd --- /dev/null +++ b/wildfly_config_examples/25.0.0/standalone.xml @@ -0,0 +1,550 @@ +<?xml version='1.0' encoding='UTF-8'?> + +<server xmlns="urn:jboss:domain:18.0"> + <extensions> + <extension module="org.jboss.as.clustering.infinispan"/> + <extension module="org.jboss.as.connector"/> + <extension module="org.jboss.as.deployment-scanner"/> + <extension module="org.jboss.as.ee"/> + <extension module="org.jboss.as.ejb3"/> + <extension module="org.jboss.as.jaxrs"/> + <extension module="org.jboss.as.jdr"/> + <extension module="org.jboss.as.jmx"/> + <extension module="org.jboss.as.jpa"/> + <extension module="org.jboss.as.jsf"/> + <extension module="org.jboss.as.logging"/> + <extension module="org.jboss.as.mail"/> + <extension module="org.jboss.as.naming"/> + <extension module="org.jboss.as.pojo"/> + <extension module="org.jboss.as.remoting"/> + <extension module="org.jboss.as.sar"/> + <extension module="org.jboss.as.transactions"/> + <extension module="org.jboss.as.webservices"/> + <extension module="org.jboss.as.weld"/> + <extension module="org.wildfly.extension.batch.jberet"/> + <extension module="org.wildfly.extension.bean-validation"/> + <extension module="org.wildfly.extension.clustering.web"/> + <extension module="org.wildfly.extension.core-management"/> + <extension module="org.wildfly.extension.discovery"/> + <extension module="org.wildfly.extension.ee-security"/> + <extension module="org.wildfly.extension.elytron"/> + <extension module="org.wildfly.extension.elytron-oidc-client"/> + <extension module="org.wildfly.extension.health"/> + <extension module="org.wildfly.extension.io"/> + <extension module="org.wildfly.extension.metrics"/> + <extension module="org.wildfly.extension.microprofile.config-smallrye"/> + <extension module="org.wildfly.extension.microprofile.jwt-smallrye"/> + <extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/> + <extension module="org.wildfly.extension.request-controller"/> + <extension module="org.wildfly.extension.security.manager"/> + <extension module="org.wildfly.extension.undertow"/> + </extensions> + <system-properties> + <property name="no.nibio.vips.logic.VIPSLOGIC_PROTOCOL" value="http"/> + <property name="no.nibio.vips.logic.SYSTEM_TIME_OFFSET_MONTHS" value="-13"/> + <property name="no.nibio.vips.logic.START_SCHEDULING_ON_BOOT" value="false"/> + <property name="no.nibio.vips.logic.MD5_SALT" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/> + <property name="no.nibio.vips.logic.VIPSCOREMANAGER_URL" value="http://localhost:8080/VIPSCoreManager"/> + <property name="no.nibio.vips.logic.CORE_BATCH_USERNAME" value="vipsbatch"/> + <property name="no.nibio.vips.logic.CORE_BATCH_PASSWORD" value="XXXXXXXX"/> + <property name="no.nibio.vips.logic.SMTP_SERVER" value="mail4.nibio.no"/> + <property name="no.nibio.vips.logic.MESSAGE_ILLUSTRATION_PATH" value="/home/developer/vips/temp/static/images/messages"/> + <property name="no.nibio.vips.logic.OBSERVATION_ILLUSTRATION_PATH" value="/home/developer/vips/temp/static/images/observations"/> + <property name="no.nibio.vips.logic.GOOGLE_OPENID_CLIENT_ID" value="XXXXXXXXXXXXXXXXXXXXXX"/> + <property name="no.nibio.vips.logic.GOOGLE_OPENID_CLIENT_SECRET" value="XXXXXXXXXXXXXXXXXXXXXX"/> + <property name="no.nibio.vips.logic.ALLOWED_X_DOMAINS" value="vipsweb,localhost"/> + <property name="no.nibio.vips.logic.AVAILABLE_LANGUAGES" value="en,nb,zh_CN"/> + <property name="no.nibio.vips.logic.DISABLE_MESSAGING_SYSTEM" value="true"/> + <property name="no.nibio.vips.logic.weather.VIPS_WEATHER_PROXY_BASE_URL" value="http://localhost:8080/VIPSWeatherProxy"/> + <property name="no.nibio.vips.logic.USER_COUNTRY_CODES" value="NO,SE,BA,LV,US,FI,LT,CH"/> + <property name="no.nibio.vips.logic.AVAILABLE_TIMEZONES" value="Europe/Oslo,Europe/Zurich,Europe/Stockholm,Europe/Vilnius,Europe/Helsinki"/> + <property name="no.nibio.vips.logic.messaging.dist.SIMULATE_MAIL_SENDING" value="true"/> + <property name="no.nibio.vips.logic.messaging.dist.MAIL_SENDER_ADDRESS" value="noreply@foobar.com"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_SERVER" value="smsgateway.foobar.com"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_USERNAME" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_PASSWORD" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.SMS_SENDER_SRC" value="foobar"/> + <property name="no.nibio.vips.logic.messaging.dist.TRAFFIC_LOG_DIRECTORY" value="/var/log/trafficLog/"/> + </system-properties> + <management> + <audit-log> + <formatters> + <json-formatter name="json-formatter"/> + </formatters> + <handlers> + <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/> + </handlers> + <logger log-boot="true" log-read-only="false" enabled="false"> + <handlers> + <handler name="file"/> + </handlers> + </logger> + </audit-log> + <management-interfaces> + <http-interface http-authentication-factory="management-http-authentication"> + <http-upgrade enabled="true" sasl-authentication-factory="management-sasl-authentication"/> + <socket-binding http="management-http"/> + </http-interface> + </management-interfaces> + <access-control provider="simple"> + <role-mapping> + <role name="SuperUser"> + <include> + <user name="$local"/> + </include> + </role> + </role-mapping> + </access-control> + </management> + <profile> + <subsystem xmlns="urn:jboss:domain:logging:8.0"> + <console-handler name="CONSOLE"> + <level name="INFO"/> + <formatter> + <named-formatter name="COLOR-PATTERN"/> + </formatter> + </console-handler> + <periodic-rotating-file-handler name="FILE" autoflush="true"> + <formatter> + <named-formatter name="PATTERN"/> + </formatter> + <file relative-to="jboss.server.log.dir" path="server.log"/> + <suffix value=".yyyy-MM-dd"/> + <append value="true"/> + </periodic-rotating-file-handler> + <logger category="com.arjuna"> + <level name="WARN"/> + </logger> + <logger category="io.jaegertracing.Configuration"> + <level name="WARN"/> + </logger> + <logger category="org.jboss.as.config"> + <level name="DEBUG"/> + </logger> + <logger category="sun.rmi"> + <level name="WARN"/> + </logger> + <root-logger> + <level name="INFO"/> + <handlers> + <handler name="CONSOLE"/> + <handler name="FILE"/> + </handlers> + </root-logger> + <formatter name="PATTERN"> + <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + <formatter name="COLOR-PATTERN"> + <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/> + </formatter> + </subsystem> + <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0"> + <default-job-repository name="in-memory"/> + <default-thread-pool name="batch"/> + <job-repository name="in-memory"> + <in-memory/> + </job-repository> + <thread-pool name="batch"> + <max-threads count="10"/> + <keepalive-time time="30" unit="seconds"/> + </thread-pool> + </subsystem> + <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/> + <subsystem xmlns="urn:jboss:domain:core-management:1.0"/> + <subsystem xmlns="urn:jboss:domain:datasources:6.0"> + <datasources> + <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}"> + <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> + <driver>h2</driver> + <security> + <user-name>sa</user-name> + <password>sa</password> + </security> + </datasource> + <datasource jta="true" jndi-name="java:jboss/datasources/vipslogic" pool-name="Postgres-vipslogic-pool-local" enabled="true" use-java-context="true" spy="true" use-ccm="true"> + <connection-url>jdbc:postgresql://vipslogicdb:5432/vipslogic</connection-url> + <driver>postgresql</driver> + <security> + <user-name>vipslogic</user-name> + <password>VIPS123</password> + </security> + </datasource> + <drivers> + <driver name="postgresql" module="org.postgresql"> + <driver-class>org.postgresql.Driver</driver-class> + </driver> + <driver name="h2" module="com.h2database.h2"> + <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> + </driver> + </drivers> + </datasources> + </subsystem> + <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> + <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:discovery:1.0"/> + <subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="default" default-single-sign-on-management="default"> + <infinispan-session-management name="default" cache-container="web" granularity="SESSION"> + <local-affinity/> + </infinispan-session-management> + <infinispan-single-sign-on-management name="default" cache-container="web" cache="sso"/> + <local-routing/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ee:6.0"> + <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> + <concurrent> + <context-services> + <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/> + </context-services> + <managed-thread-factories> + <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/> + </managed-thread-factories> + <managed-executor-services> + <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-termination-period="0" hung-task-threshold="60000" keepalive-time="5000"/> + </managed-executor-services> + <managed-scheduled-executor-services> + <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-termination-period="0" hung-task-threshold="60000" keepalive-time="3000"/> + </managed-scheduled-executor-services> + </concurrent> + <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:ee-security:1.0"/> + <subsystem xmlns="urn:jboss:domain:ejb3:9.0"> + <session-bean> + <stateless> + <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/> + </stateless> + <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/> + <singleton default-access-timeout="5000"/> + </session-bean> + <pools> + <bean-instance-pools> + <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> + </bean-instance-pools> + </pools> + <caches> + <cache name="simple"/> + <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> + </caches> + <passivation-stores> + <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/> + </passivation-stores> + <async thread-pool-name="default"/> + <timer-service thread-pool-name="default" default-data-store="default-file-store"> + <data-stores> + <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/> + </data-stores> + </timer-service> + <remote cluster="ejb" connectors="http-remoting-connector" thread-pool-name="default"> + <channel-creation-options> + <option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/> + </channel-creation-options> + </remote> + <thread-pools> + <thread-pool name="default"> + <max-threads count="10"/> + <keepalive-time time="60" unit="seconds"/> + </thread-pool> + </thread-pools> + <default-security-domain value="other"/> + <application-security-domains> + <application-security-domain name="other" security-domain="ApplicationDomain"/> + </application-security-domains> + <default-missing-method-permissions-deny-access value="true"/> + <statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/> + <log-system-exceptions value="true"/> + </subsystem> + <subsystem xmlns="urn:wildfly:elytron:14.0" final-providers="combined-providers" disallowed-providers="OracleUcrypto"> + <providers> + <aggregate-providers name="combined-providers"> + <providers name="elytron"/> + <providers name="openssl"/> + </aggregate-providers> + <provider-loader name="elytron" module="org.wildfly.security.elytron"/> + <provider-loader name="openssl" module="org.wildfly.openssl"/> + </providers> + <audit-logging> + <file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON"/> + </audit-logging> + <security-domains> + <security-domain name="ManagementDomain" default-realm="ManagementRealm" permission-mapper="default-permission-mapper"> + <realm name="ManagementRealm" role-decoder="groups-to-roles"/> + <realm name="local" role-mapper="super-user-mapper"/> + </security-domain> + <security-domain name="ApplicationDomain" default-realm="ApplicationRealm" permission-mapper="default-permission-mapper"> + <realm name="ApplicationRealm" role-decoder="groups-to-roles"/> + <realm name="local"/> + </security-domain> + </security-domains> + <security-realms> + <identity-realm name="local" identity="$local"/> + <properties-realm name="ApplicationRealm"> + <users-properties path="application-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ApplicationRealm"/> + <groups-properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> + </properties-realm> + <properties-realm name="ManagementRealm"> + <users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ManagementRealm"/> + <groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> + </properties-realm> + </security-realms> + <mappers> + <simple-permission-mapper name="default-permission-mapper" mapping-mode="first"> + <permission-mapping> + <principal name="anonymous"/> + <permission-set name="default-permissions"/> + </permission-mapping> + <permission-mapping match-all="true"> + <permission-set name="login-permission"/> + <permission-set name="default-permissions"/> + </permission-mapping> + </simple-permission-mapper> + <constant-realm-mapper name="local" realm-name="local"/> + <simple-role-decoder name="groups-to-roles" attribute="groups"/> + <constant-role-mapper name="super-user-mapper"> + <role name="SuperUser"/> + </constant-role-mapper> + </mappers> + <permission-sets> + <permission-set name="login-permission"> + <permission class-name="org.wildfly.security.auth.permission.LoginPermission"/> + </permission-set> + <permission-set name="default-permissions"> + <permission class-name="org.wildfly.extension.batch.jberet.deployment.BatchPermission" module="org.wildfly.extension.batch.jberet" target-name="*"/> + <permission class-name="org.wildfly.transaction.client.RemoteTransactionPermission" module="org.wildfly.transaction.client"/> + <permission class-name="org.jboss.ejb.client.RemoteEJBPermission" module="org.jboss.ejb-client"/> + </permission-set> + </permission-sets> + <http> + <http-authentication-factory name="management-http-authentication" security-domain="ManagementDomain" http-server-mechanism-factory="global"> + <mechanism-configuration> + <mechanism mechanism-name="DIGEST"> + <mechanism-realm realm-name="ManagementRealm"/> + </mechanism> + </mechanism-configuration> + </http-authentication-factory> + <http-authentication-factory name="application-http-authentication" security-domain="ApplicationDomain" http-server-mechanism-factory="global"> + <mechanism-configuration> + <mechanism mechanism-name="BASIC"> + <mechanism-realm realm-name="ApplicationRealm"/> + </mechanism> + </mechanism-configuration> + </http-authentication-factory> + <provider-http-server-mechanism-factory name="global"/> + </http> + <sasl> + <sasl-authentication-factory name="management-sasl-authentication" sasl-server-factory="configured" security-domain="ManagementDomain"> + <mechanism-configuration> + <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/> + <mechanism mechanism-name="DIGEST-MD5"> + <mechanism-realm realm-name="ManagementRealm"/> + </mechanism> + </mechanism-configuration> + </sasl-authentication-factory> + <sasl-authentication-factory name="application-sasl-authentication" sasl-server-factory="configured" security-domain="ApplicationDomain"> + <mechanism-configuration> + <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/> + <mechanism mechanism-name="DIGEST-MD5"> + <mechanism-realm realm-name="ApplicationRealm"/> + </mechanism> + </mechanism-configuration> + </sasl-authentication-factory> + <configurable-sasl-server-factory name="configured" sasl-server-factory="elytron"> + <properties> + <property name="wildfly.sasl.local-user.default-user" value="$local"/> + <property name="wildfly.sasl.local-user.challenge-path" value="${jboss.server.temp.dir}/auth"/> + </properties> + </configurable-sasl-server-factory> + <mechanism-provider-filtering-sasl-server-factory name="elytron" sasl-server-factory="global"> + <filters> + <filter provider-name="WildFlyElytron"/> + </filters> + </mechanism-provider-filtering-sasl-server-factory> + <provider-sasl-server-factory name="global"/> + </sasl> + <tls> + <key-stores> + <key-store name="applicationKS"> + <credential-reference clear-text="password"/> + <implementation type="JKS"/> + <file path="application.keystore" relative-to="jboss.server.config.dir"/> + </key-store> + </key-stores> + <key-managers> + <key-manager name="applicationKM" key-store="applicationKS" generate-self-signed-certificate-host="localhost"> + <credential-reference clear-text="password"/> + </key-manager> + </key-managers> + <server-ssl-contexts> + <server-ssl-context name="applicationSSC" key-manager="applicationKM"/> + </server-ssl-contexts> + </tls> + </subsystem> + <subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/> + <subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/> + <subsystem xmlns="urn:jboss:domain:infinispan:13.0"> + <cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM" aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan"> + <local-cache name="passivation"> + <expiration interval="0"/> + <file-store passivation="true" purge="false"/> + </local-cache> + </cache-container> + <cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM" modules="org.wildfly.clustering.web.infinispan"> + <local-cache name="passivation"> + <expiration interval="0"/> + <file-store passivation="true" purge="false"/> + </local-cache> + <local-cache name="sso"> + <expiration interval="0"/> + </local-cache> + </cache-container> + <cache-container name="server" default-cache="default" marshaller="PROTOSTREAM" modules="org.wildfly.clustering.server"> + <local-cache name="default"> + <expiration interval="0"/> + </local-cache> + </cache-container> + <cache-container name="hibernate" marshaller="JBOSS" modules="org.infinispan.hibernate-cache"> + <local-cache name="entity"> + <heap-memory size="10000"/> + <expiration max-idle="100000"/> + </local-cache> + <local-cache name="local-query"> + <heap-memory size="10000"/> + <expiration max-idle="100000"/> + </local-cache> + <local-cache name="timestamps"> + <expiration interval="0"/> + </local-cache> + <local-cache name="pending-puts"> + <expiration max-idle="60000"/> + </local-cache> + </cache-container> + </subsystem> + <subsystem xmlns="urn:jboss:domain:io:3.0"> + <worker name="default"/> + <buffer-pool name="default"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/> + <subsystem xmlns="urn:jboss:domain:jca:5.0"> + <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/> + <bean-validation enabled="true"/> + <default-workmanager> + <short-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </short-running-threads> + <long-running-threads> + <core-threads count="50"/> + <queue-length count="50"/> + <max-threads count="50"/> + <keepalive-time time="10" unit="seconds"/> + </long-running-threads> + </default-workmanager> + <cached-connection-manager/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jdr:1.0"/> + <subsystem xmlns="urn:jboss:domain:jmx:1.3"> + <expose-resolved-model/> + <expose-expression-model/> + <remoting-connector/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jpa:1.1"> + <jpa default-extended-persistence-inheritance="DEEP"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:jsf:1.1"/> + <subsystem xmlns="urn:jboss:domain:mail:4.0"> + <mail-session name="default" jndi-name="java:jboss/mail/Default"> + <smtp-server outbound-socket-binding-ref="mail-smtp"/> + </mail-session> + </subsystem> + <subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*" prefix="${wildfly.metrics.prefix:wildfly}"/> + <subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/> + <subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/> + <subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger"> + <jaeger-tracer name="jaeger"> + <sampler-configuration sampler-type="const" sampler-param="1.0"/> + </jaeger-tracer> + </subsystem> + <subsystem xmlns="urn:jboss:domain:naming:2.0"> + <remote-naming/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:pojo:1.0"/> + <subsystem xmlns="urn:jboss:domain:remoting:4.0"> + <http-connector name="http-remoting-connector" connector-ref="default" sasl-authentication-factory="application-sasl-authentication"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/> + <subsystem xmlns="urn:jboss:domain:resource-adapters:6.0"/> + <subsystem xmlns="urn:jboss:domain:sar:1.0"/> + <subsystem xmlns="urn:jboss:domain:security-manager:1.0"> + <deployment-permissions> + <maximum-set> + <permission class="java.security.AllPermission"/> + </maximum-set> + </deployment-permissions> + </subsystem> + <subsystem xmlns="urn:jboss:domain:transactions:6.0"> + <core-environment node-identifier="${jboss.tx.node.id:1}"> + <process-id> + <uuid/> + </process-id> + </core-environment> + <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/> + <coordinator-environment statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/> + <object-store path="tx-object-store" relative-to="jboss.server.data.dir"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}"> + <buffer-cache name="default"/> + <server name="default-server"> + <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/> + <https-listener name="https" socket-binding="https" ssl-context="applicationSSC" enable-http2="true"/> + <host name="default-host" alias="localhost"> + <location name="/" handler="welcome-content"/> + <http-invoker http-authentication-factory="application-http-authentication"/> + </host> + </server> + <servlet-container name="default"> + <jsp-config/> + <websockets/> + </servlet-container> + <handlers> + <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> + </handlers> + <application-security-domains> + <application-security-domain name="other" security-domain="ApplicationDomain"/> + </application-security-domains> + </subsystem> + <subsystem xmlns="urn:jboss:domain:webservices:2.0" statistics-enabled="${wildfly.webservices.statistics-enabled:${wildfly.statistics-enabled:false}}"> + <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host> + <endpoint-config name="Standard-Endpoint-Config"/> + <endpoint-config name="Recording-Endpoint-Config"> + <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"> + <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/> + </pre-handler-chain> + </endpoint-config> + <client-config name="Standard-Client-Config"/> + </subsystem> + <subsystem xmlns="urn:jboss:domain:weld:4.0"/> + </profile> + <interfaces> + <interface name="management"> + <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> + </interface> + <interface name="public"> + <inet-address value="${jboss.bind.address:127.0.0.1}"/> + </interface> + </interfaces> + <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> + <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> + <socket-binding name="http" port="${jboss.http.port:8080}"/> + <socket-binding name="https" port="${jboss.https.port:8443}"/> + <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> + <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> + <socket-binding name="txn-recovery-environment" port="4712"/> + <socket-binding name="txn-status-manager" port="4713"/> + <outbound-socket-binding name="mail-smtp"> + <remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/> + </outbound-socket-binding> + </socket-binding-group> +</server>