From 00b7faab072319caed6dece66db7829c42ac5485 Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Mon, 3 Mar 2025 15:35:58 +0100 Subject: [PATCH] docker: implements generating web.xml to config endpoints (async/uws mcutout merge) --- .../webapp/WEB-INF/async-uws.node.xml.default | 40 +++++ .../webapp/WEB-INF/security.node.xml.default | 20 +++ .../src/main/webapp/WEB-INF/soda.node.xml | 29 ++++ .../webapp/WEB-INF/web-cutout-garrtoken.xml | 128 --------------- .../webapp/WEB-INF/web-cutout-ia2token.xml | 129 --------------- .../webapp/WEB-INF/web-cutout-iamtoken.xml | 118 -------------- .../servlet/src/main/webapp/WEB-INF/web.xml | 151 ------------------ .../src/main/webapp/WEB-INF/web.xml.epilog | 3 + .../src/main/webapp/WEB-INF/web.xml.prolog | 11 ++ docker/Dockerfile.soda | 2 +- docker/example-compose-soda.yaml | 15 +- docker/start-soda.sh | 76 +++------ 12 files changed, 144 insertions(+), 578 deletions(-) create mode 100644 data-access/servlet/src/main/webapp/WEB-INF/async-uws.node.xml.default create mode 100644 data-access/servlet/src/main/webapp/WEB-INF/security.node.xml.default create mode 100644 data-access/servlet/src/main/webapp/WEB-INF/soda.node.xml delete mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web-cutout-garrtoken.xml delete mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web-cutout-ia2token.xml delete mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web-cutout-iamtoken.xml delete mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web.xml create mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web.xml.epilog create mode 100644 data-access/servlet/src/main/webapp/WEB-INF/web.xml.prolog diff --git a/data-access/servlet/src/main/webapp/WEB-INF/async-uws.node.xml.default b/data-access/servlet/src/main/webapp/WEB-INF/async-uws.node.xml.default new file mode 100644 index 0000000..3053fe3 --- /dev/null +++ b/data-access/servlet/src/main/webapp/WEB-INF/async-uws.node.xml.default @@ -0,0 +1,40 @@ + + <servlet> + <servlet-name>uws_merge</servlet-name> + <servlet-class>UWSMerge</servlet-class> + <init-param> + <param-name>name</param-name> + <param-value>merge</param-value> + </init-param> + <init-param> + <param-name>rootDirectory</param-name> + <param-value>/tmp</param-value> + </init-param> + </servlet> + <servlet-mapping> + <servlet-name>uws_merge</servlet-name> + <url-pattern>/uws/merge/*</url-pattern> + </servlet-mapping> + + + <servlet> + <servlet-name>uws_mcutout</servlet-name> + <servlet-class>UWSMCutout</servlet-class> + <init-param> + <param-name>name</param-name> + <param-value>mcutout</param-value> + </init-param> + <init-param> + <param-name>rootDirectory</param-name> + <param-value>/tmp</param-value> + </init-param> + </servlet> + <servlet-mapping> + <servlet-name>uws_mcutout</servlet-name> + <url-pattern>/async/*</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>uws_mcutout</servlet-name> + <url-pattern>/uws/mcutout/*</url-pattern> + </servlet-mapping> + diff --git a/data-access/servlet/src/main/webapp/WEB-INF/security.node.xml.default b/data-access/servlet/src/main/webapp/WEB-INF/security.node.xml.default new file mode 100644 index 0000000..2ed5658 --- /dev/null +++ b/data-access/servlet/src/main/webapp/WEB-INF/security.node.xml.default @@ -0,0 +1,20 @@ + + <filter> + <filter-name>TokenFilter</filter-name> + <filter-class>it.inaf.ia2.aa.TokenFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>TokenFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <filter> + <filter-name>AuthZFilter</filter-name> + <filter-class>AuthZFilter</filter-class> + </filter> + <filter-mapping> + <filter-name>AuthZFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + diff --git a/data-access/servlet/src/main/webapp/WEB-INF/soda.node.xml b/data-access/servlet/src/main/webapp/WEB-INF/soda.node.xml new file mode 100644 index 0000000..081bc3d --- /dev/null +++ b/data-access/servlet/src/main/webapp/WEB-INF/soda.node.xml @@ -0,0 +1,29 @@ + + <servlet> + <servlet-name>vlkb_vosi_availability</servlet-name> + <servlet-class>VlkbServletFile</servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>vlkb_vosi_availability</servlet-name> + <url-pattern>/availability</url-pattern> + </servlet-mapping> + + <servlet> + <servlet-name>vlkb_vosi_capabilities</servlet-name> + <servlet-class>VlkbServletFile</servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>vlkb_vosi_capabilities</servlet-name> + <url-pattern>/capabilities</url-pattern> + </servlet-mapping> + + + <servlet> + <servlet-name>vlkb_soda</servlet-name> + <servlet-class>ServletCutout</servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>vlkb_soda</servlet-name> + <url-pattern>/sync</url-pattern> + </servlet-mapping> + diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-garrtoken.xml b/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-garrtoken.xml deleted file mode 100644 index 7454992..0000000 --- a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-garrtoken.xml +++ /dev/null @@ -1,128 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - Use is subject to license terms. ---> - -<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - <display-name>Via Lactea. Query FITS datacubes.</display-name> - <distributable/> - - - - - <filter> - <filter-name>TokenFilter</filter-name> - <filter-class>NeaTokenFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>TokenFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <filter> - <filter-name>AuthZFilter</filter-name> - <filter-class>AuthZFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>AuthZFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - - - - <servlet> - <servlet-name>default</servlet-name> - <servlet-class> - org.apache.catalina.servlets.DefaultServlet - </servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <init-param> - <param-name>listings</param-name> - <param-value>false</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>default</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - - - - - - - - - - <servlet> - <servlet-name>vlkb_vosi_availability</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_availability</servlet-name> - <url-pattern>/availability</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <url-pattern>/capabilities</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>vlkb_soda</servlet-name> - <servlet-class>ServletCutout</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_soda</servlet-name> - <url-pattern>/sync</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>uws_merge</servlet-name> - <servlet-class>UWSMerge</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>merge</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_merge</servlet-name> - <url-pattern>/uws/merge/*</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>uws_mcutout</servlet-name> - <servlet-class>UWSMCutout</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>mcutout</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_mcutout</servlet-name> - <url-pattern>/uws/mcutout/*</url-pattern> - </servlet-mapping> - - -</web-app> diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-ia2token.xml b/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-ia2token.xml deleted file mode 100644 index 6a4d15e..0000000 --- a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-ia2token.xml +++ /dev/null @@ -1,129 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - Use is subject to license terms. ---> - -<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - <display-name>Via Lactea. Query FITS datacubes.</display-name> - <distributable/> - - - - <filter> - <filter-name>TokenFilter</filter-name> - <filter-class>it.inaf.ia2.aa.TokenFilter</filter-class> - </filter> - - <filter-mapping> - <filter-name>TokenFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <filter> - <filter-name>AuthZFilter</filter-name> - <filter-class>AuthZFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>AuthZFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - - - - <servlet> - <servlet-name>default</servlet-name> - <servlet-class> - org.apache.catalina.servlets.DefaultServlet - </servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <init-param> - <param-name>listings</param-name> - <param-value>false</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>default</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - - - - - - - - - - <servlet> - <servlet-name>vlkb_vosi_availability</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_availability</servlet-name> - <url-pattern>/availability</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <url-pattern>/capabilities</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>vlkb_soda</servlet-name> - <servlet-class>ServletCutout</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_soda</servlet-name> - <url-pattern>/sync</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>uws_merge</servlet-name> - <servlet-class>UWSMerge</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>merge</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_merge</servlet-name> - <url-pattern>/uws/merge/*</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>uws_mcutout</servlet-name> - <servlet-class>UWSMCutout</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>mcutout</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_mcutout</servlet-name> - <url-pattern>/uws/mcutout/*</url-pattern> - </servlet-mapping> - - -</web-app> - diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-iamtoken.xml b/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-iamtoken.xml deleted file mode 100644 index dc09f5c..0000000 --- a/data-access/servlet/src/main/webapp/WEB-INF/web-cutout-iamtoken.xml +++ /dev/null @@ -1,118 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - Use is subject to license terms. ---> - -<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - <display-name>Via Lactea. Query FITS datacubes.</display-name> - <distributable/> - - - - - <filter> - <filter-name>TokenFilter</filter-name> - <filter-class>IamTokenFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>TokenFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - - - - <servlet> - <servlet-name>default</servlet-name> - <servlet-class> - org.apache.catalina.servlets.DefaultServlet - </servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <init-param> - <param-name>listings</param-name> - <param-value>false</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>default</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - - - - - - - - - <servlet> - <servlet-name>vlkb_vosi_availability</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_availability</servlet-name> - <url-pattern>/availability</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <url-pattern>/capabilities</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>vlkb_soda</servlet-name> - <servlet-class>ServletCutout</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_soda</servlet-name> - <url-pattern>/sync</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>uws_merge</servlet-name> - <servlet-class>UWSMerge</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>merge</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_merge</servlet-name> - <url-pattern>/uws/merge/*</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>uws_mcutout</servlet-name> - <servlet-class>UWSMCutout</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>mcutout</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_mcutout</servlet-name> - <url-pattern>/uws/mcutout/*</url-pattern> - </servlet-mapping> - -</web-app> - diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web.xml b/data-access/servlet/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 13b4928..0000000 --- a/data-access/servlet/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,151 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - Use is subject to license terms. ---> - -<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> - <display-name>ViaLactea. Access FITS datacubes.</display-name> - <distributable/> - - -<!-- uncomment IA2 or GARR token filter to enable security - - <filter> - <filter-name>TokenFilter</filter-name> - <filter-class>it.inaf.ia2.aa.TokenFilter</filter-class> - </filter> - - <filter-mapping> - <filter-name>TokenFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <filter> - <filter-name>UserTypeConverter</filter-name> - <filter-class>IA2TokenConvFilter</filter-class> - </filter> - - <filter-mapping> - <filter-name>UserTypeConverter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - - - <filter> - <filter-name>TokenFilter</filter-name> - <filter-class>NeaAuthFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>TokenFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - ---> -<!-- in addition to one of the above token-filters, uncomment this to enable group-based authorization check - <filter> - <filter-name>AuthorizationResponseFilter</filter-name> - <filter-class>AuthorizationResponseFilter</filter-class> - </filter> - <filter-mapping> - <filter-name>AuthorizationResponseFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> ---> - - - - <servlet> - <servlet-name>default</servlet-name> - <servlet-class> - org.apache.catalina.servlets.DefaultServlet - </servlet-class> - <init-param> - <param-name>debug</param-name> - <param-value>0</param-value> - </init-param> - <init-param> - <param-name>listings</param-name> - <param-value>false</param-value> - </init-param> - <load-on-startup>1</load-on-startup> - </servlet> - <servlet-mapping> - <servlet-name>default</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - - - - - - - - - <servlet> - <servlet-name>vlkb_vosi_availability</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_availability</servlet-name> - <url-pattern>/availability</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <servlet-class>VlkbServletFile</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_vosi_capabilities</servlet-name> - <url-pattern>/capabilities</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>vlkb_soda</servlet-name> - <servlet-class>ServletCutout</servlet-class> - </servlet> - <servlet-mapping> - <servlet-name>vlkb_soda</servlet-name> - <url-pattern>/sync</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>uws_merge</servlet-name> - <servlet-class>UWSMerge</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>merge</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_merge</servlet-name> - <url-pattern>/uws/merge/*</url-pattern> - </servlet-mapping> - - - <servlet> - <servlet-name>uws_mcutout</servlet-name> - <servlet-class>UWSMCutout</servlet-class> - <init-param> - <param-name>name</param-name> - <param-value>mcutout</param-value> - </init-param> - <init-param> - <param-name>rootDirectory</param-name> - <param-value>/tmp</param-value> - </init-param> - </servlet> - <servlet-mapping> - <servlet-name>uws_mcutout</servlet-name> - <url-pattern>/uws/mcutout/*</url-pattern> - </servlet-mapping> - -</web-app> - diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web.xml.epilog b/data-access/servlet/src/main/webapp/WEB-INF/web.xml.epilog new file mode 100644 index 0000000..76bd928 --- /dev/null +++ b/data-access/servlet/src/main/webapp/WEB-INF/web.xml.epilog @@ -0,0 +1,3 @@ + +</web-app> + diff --git a/data-access/servlet/src/main/webapp/WEB-INF/web.xml.prolog b/data-access/servlet/src/main/webapp/WEB-INF/web.xml.prolog new file mode 100644 index 0000000..fec91d0 --- /dev/null +++ b/data-access/servlet/src/main/webapp/WEB-INF/web.xml.prolog @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. + Use is subject to license terms. +--> + +<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> + <display-name>Via Lactea. Query FITS datacubes.</display-name> + <distributable/> + diff --git a/docker/Dockerfile.soda b/docker/Dockerfile.soda index 5af5ca3..654e42a 100644 --- a/docker/Dockerfile.soda +++ b/docker/Dockerfile.soda @@ -61,7 +61,7 @@ RUN echo "${INST_DIR}/lib" > /etc/ld.so.conf.d/ast.conf && ldconfig \ COPY deps/context.xml ${WEBAPP_DIR}/META-INF/context.xml # enable SKA IAM token filter update -RUN chmod a+rw ${WEBAPP_DIR}/WEB-INF/web.xml \ +RUN chmod -R a+rwX ${WEBAPP_DIR}/WEB-INF \ && touch ${WEBAPP_DIR}/WEB-INF/classes/ia2token.properties \ && touch ${WEBAPP_DIR}/WEB-INF/classes/iamtoken.properties \ && chmod a+rw ${WEBAPP_DIR}/WEB-INF/classes/*.properties diff --git a/docker/example-compose-soda.yaml b/docker/example-compose-soda.yaml index bcd6df2..939c419 100644 --- a/docker/example-compose-soda.yaml +++ b/docker/example-compose-soda.yaml @@ -1,7 +1,20 @@ -version: '3' services: + vlkb: + container_name: vlkb + image: soda:latest +# user: root:root + ports: + - 8080:8080 + environment: + - ACCESS_CONTEXT_ROOT=soda + volumes: + - /srv/vlkb/surveys:/srv/datasets:ro + - $PWD/start-soda.log:/tmp/start-soda.log:rw +# restart: always + + ska: container_name: ska image: harbor.srcdev.skao.int/soda/visivo-vlkb-soda:1.7 diff --git a/docker/start-soda.sh b/docker/start-soda.sh index c05f019..b5617c5 100755 --- a/docker/start-soda.sh +++ b/docker/start-soda.sh @@ -7,6 +7,7 @@ date env # set optional +ENABLE_ASYNC_UWS=${ENABLE_ASYNC_UWS:-} ACCESS_CONTEXT_ROOT=${ACCESS_CONTEXT_ROOT:-soda} OIDC_RAP_URL=${OIDC_RAP_URL:-} @@ -25,30 +26,13 @@ SECURITY=${SECURITY:-} KEYSTORE_ALIAS=${KEYSTORE_ALIAS:-} +# configure server -# configure CONTEXT_ROOT mkdir -p $CATALINA_BASE/conf/Catalina/localhost cp $WEBAPP_DIR/META-INF/context.xml $CATALINA_BASE/conf/Catalina/localhost/$ACCESS_CONTEXT_ROOT.xml -# env SECURITY (deprecated) - -case $SECURITY in - iamtoken) - echo "SECURITY is set: "$SECURITY - cd $WEBAPP_DIR/WEB-INF/ && rm -f web.xml && cp web-cutout-$SECURITY.xml web.xml && cd - - cp /etc/pki/tls/server-connector.xml $CATALINA_BASE/conf - cp /etc/pki/tls/iamtoken.properties $WEBAPP_DIR/WEB-INF/classes/ - ;; - *) - echo "SECURITY not configured." - ;; -esac - - -# configure TLS - if [ -f /etc/pki/tls/keystore.jks ] && [ -f /etc/pki/tls/keystore.pwd ]; then cp $CATALINA_BASE/conf/server-connector.xml-8443 $CATALINA_BASE/conf/server-connector.xml @@ -60,33 +44,15 @@ then sed -i "s/tomcat/$KEYSTORE_ALIAS/" $CATALINA_BASE/conf/server-connector.xml fi -# configure SKA IAM -if [ -z "$OIDC_INTROSPECT" ] || [ -z "$OIDC_CLIENT" ] || [ -z "$OIDC_PASSWORD" ]; -then - echo "Some of OIDC_ for SKA IAM is not set." - echo "url: "$OIDC_INTROSPECT - echo "cli: "$OIDC_CLIENT - echo "pwd: "$OIDC_PASSWORD -else - echo "Config SKA IAM ..." - { - echo "introspect=$OIDC_INTROSPECT" - echo "client_name=$OIDC_CLIENT" - echo "client_password=$OIDC_PASSWORD" - } > $WEBAPP_DIR/WEB-INF/classes/iamtoken.properties - cp $WEBAPP_DIR/WEB-INF/web-cutout-iamtoken.xml $WEBAPP_DIR/WEB-INF/web.xml -fi +# configure webapp -# configure IA2 security -if [ -z "$OIDC_RAP_URL" ] || [ -z "$OIDC_GMS_URL" ] || [ -z "$OIDC_CLIENT" ] || [ -z "$OIDC_SECRET" ]; +if [ -z "$OIDC_RAP_URL" ] || [ -z "$OIDC_GMS_URL" ] || [ -z "$OIDC_CLIENT" ] || [ -z "$OIDC_SECRET" ] \ + [ -z "$AUTHZ_DB_URL" ] || [ -z "$AUTHZ_DB_SCHEMA" ] || [ -z "$AUTHZ_DB_USERNAME" ] || [ -z "$AUTHZ_DB_PASSWORD" ]; then - echo "Some of OIDC_ for IA2 is not set." - echo "rap: "$OIDC_RAP_URL - echo "gms: "$OIDC_GMS_URL - echo "cli: "$OIDC_CLIENT - echo "pwd: "$OIDC_SECRET + echo "Some of OIDC_ or AUTHZ_ is not set. All must be set to activate security." + touch $WEBAPP_DIR/WEB-INF/security.node.xml else echo "Config IA2 OIDC ..." { @@ -99,15 +65,7 @@ else echo "scope=openid email profile read:rap" echo "allow_anonymous_access=true" } > $WEBAPP_DIR/WEB-INF/classes/ia2token.properties - cp $WEBAPP_DIR/WEB-INF/web-cutout-ia2token.xml $WEBAPP_DIR/WEB-INF/web.xml -fi -# VLKB authorization - -if [ -z "$AUTHZ_DB_URL" ] || [ -z "$AUTHZ_DB_SCHEMA" ] || [ -z "$AUTHZ_DB_USERNAME" ] || [ -z "$AUTHZ_DB_PASSWORD" ]; -then - echo "Some of AUTHZ_DB_ is not set." -else echo "Config VLKB authorization ..." { echo "db_uri=$AUTHZ_DB_URL" @@ -115,10 +73,28 @@ else echo "db_user_name=$AUTHZ_DB_USERNAME" echo "db_password=$AUTHZ_DB_PASSWORD" } > $WEBAPP_DIR/WEB-INF/classes/authpolicy.properties - #cp $WEBAPP_DIR/WEB-INF/web-cutout-ia2token.xml $WEBAPP_DIR/WEB-INF/web.xml + + cp $WEBAPP_DIR/WEB-INF/security.node.xml.default $WEBAPP_DIR/WEB-INF/security.node.xml fi +if [ -z "$ENABLE_ASYNC_UWS" ]; +then + echo "/async/uws endpoint not active." + touch $WEBAPP_DIR/WEB-INF/async-uws.node.xml +else + echo "/async/uws endpoint enabled." + cp $WEBAPP_DIR/WEB-INF/async-uws.node.xml.default $WEBAPP_DIR/WEB-INF/async-uws.node.xml +fi + + +# create web-app endpoints +cat $WEBAPP_DIR/WEB-INF/web.xml.prolog \ + $WEBAPP_DIR/WEB-INF/security.node.xml \ + $WEBAPP_DIR/WEB-INF/soda.node.xml \ + $WEBAPP_DIR/WEB-INF/async-uws.node.xml \ + $WEBAPP_DIR/WEB-INF/web.xml.epilog > $WEBAPP_DIR/WEB-INF/web.xml + # config debug -- GitLab