From 1a1069b848d00843611690fc55a6e3bd2c78f4bc Mon Sep 17 00:00:00 2001 From: anhefti Date: Thu, 19 Sep 2024 09:48:05 +0200 Subject: [PATCH] SEBSERV-530 added bundled profile instead of ws,gui --- .../ClientHttpRequestFactoryService.java | 4 +- .../java/ch/ethz/seb/sebserver/SEBServer.java | 37 ----- .../sebserver/gbl/profile/DevGuiProfile.java | 26 --- .../gbl/profile/DevWebServiceProfile.java | 26 --- .../seb/sebserver/gbl/profile/GuiProfile.java | 4 +- .../sebserver/gbl/profile/ProdGuiProfile.java | 26 --- .../gbl/profile/ProdWebServiceProfile.java | 26 --- .../gbl/profile/WebServiceProfile.java | 4 +- .../config/application-bundled.properties | 1 + .../config/application-dev-gui.properties | 21 --- .../config/application-dev-ws.properties | 117 -------------- .../config/application-dev.properties | 150 ++++++++++++++++-- .../resources/config/application.properties | 2 +- src/main/resources/logback-spring.xml | 15 +- 14 files changed, 153 insertions(+), 306 deletions(-) delete mode 100644 src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevGuiProfile.java delete mode 100644 src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevWebServiceProfile.java delete mode 100644 src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdGuiProfile.java delete mode 100644 src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdWebServiceProfile.java create mode 100644 src/main/resources/config/application-bundled.properties delete mode 100644 src/main/resources/config/application-dev-gui.properties delete mode 100644 src/main/resources/config/application-dev-ws.properties diff --git a/src/main/java/ch/ethz/seb/sebserver/ClientHttpRequestFactoryService.java b/src/main/java/ch/ethz/seb/sebserver/ClientHttpRequestFactoryService.java index 0314bfd5a..9757b6e8b 100644 --- a/src/main/java/ch/ethz/seb/sebserver/ClientHttpRequestFactoryService.java +++ b/src/main/java/ch/ethz/seb/sebserver/ClientHttpRequestFactoryService.java @@ -61,8 +61,8 @@ public class ClientHttpRequestFactoryService { private static final Logger log = LoggerFactory.getLogger(ClientHttpRequestFactoryService.class); - private static final Collection DEV_PROFILES = Arrays.asList("dev-gui", "test", "demo", "dev-ws"); - private static final Collection PROD_PROFILES = Arrays.asList("prod-gui", "prod-ws"); + private static final Collection DEV_PROFILES = Arrays.asList("dev", "test", "demo"); + private static final Collection PROD_PROFILES = Arrays.asList("prod", "prod-gui", "prod-ws"); private final int connectTimeout; private final int connectionRequestTimeout; diff --git a/src/main/java/ch/ethz/seb/sebserver/SEBServer.java b/src/main/java/ch/ethz/seb/sebserver/SEBServer.java index d249e1fe2..bdc965c29 100644 --- a/src/main/java/ch/ethz/seb/sebserver/SEBServer.java +++ b/src/main/java/ch/ethz/seb/sebserver/SEBServer.java @@ -9,22 +9,14 @@ package ch.ethz.seb.sebserver; import org.apache.catalina.connector.Connector; -import org.apache.commons.lang3.BooleanUtils; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.env.Environment; import org.springframework.security.web.firewall.HttpFirewall; import org.springframework.security.web.firewall.StrictHttpFirewall; -import ch.ethz.seb.sebserver.gbl.Constants; -import ch.ethz.seb.sebserver.gbl.profile.ProdGuiProfile; -import ch.ethz.seb.sebserver.gbl.profile.ProdWebServiceProfile; - /** SEB-Server (Safe Exam Browser Server) is a server component to maintain and support * Exams running with SEB (Safe Exam Browser). TODO add link(s) *

@@ -48,35 +40,6 @@ public static void main(final String[] args) { SpringApplication.run(SEBServer.class, args); } - /* - * Add a redirect Connector on http port to redirect all http calls - * to https. - * - * NOTE: This works with TomcatServletWebServerFactory and embedded tomcat. - * If the webservice and/or gui is going to running on another server or - * redirect is handled by a proxy, this redirect can be deactivated within - * the "sebserver.ssl.redirect.enabled" property set to false - */ - @Bean - @ProdWebServiceProfile - @ProdGuiProfile - public ServletWebServerFactory servletContainer( - final Environment env, - final ApplicationContext applicationContext) { - - final String enabled = env.getProperty( - "sebserver.ssl.redirect.enabled", - Constants.FALSE_STRING); - - if (!BooleanUtils.toBoolean(enabled)) { - return new TomcatServletWebServerFactory(); - } - - final TomcatServletWebServerFactory tomcat = new HTTPSRedirectServerFactory(); - tomcat.addAdditionalTomcatConnectors(redirectConnector(env)); - return tomcat; - } - @Bean public HttpFirewall allowEncodedParamsFirewall() { final StrictHttpFirewall firewall = new StrictHttpFirewall(); diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevGuiProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevGuiProfile.java deleted file mode 100644 index b9893eea6..000000000 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevGuiProfile.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2018 ETH Zürich, IT Services - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package ch.ethz.seb.sebserver.gbl.profile; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.annotation.Profile; - -/** Profile annotation for SEB-Server dev-gui components. - * - * Use this as profile annotation on components that are only needed in the web-gui environment - * and only for development and/or testing */ -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) -@Profile({ "dev-gui", "test", "demo" }) -public @interface DevGuiProfile { -} diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevWebServiceProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevWebServiceProfile.java deleted file mode 100644 index 22f54b6e0..000000000 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/DevWebServiceProfile.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2018 ETH Zürich, IT Services - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package ch.ethz.seb.sebserver.gbl.profile; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.annotation.Profile; - -/** Profile annotation for SEB-Server dev-ws components. - * - * Use this as profile annotation on components that are only needed in the web-service environment - * and only for development and/or testing */ -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) -@Profile({ "dev-ws", "test", "demo" }) -public @interface DevWebServiceProfile { -} diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/GuiProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/GuiProfile.java index 925e03415..eb736fd46 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/GuiProfile.java +++ b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/GuiProfile.java @@ -16,11 +16,11 @@ import org.springframework.context.annotation.Profile; /** Profile annotation for SEB-Server gui components. - * + *

* Use this as profile annotation on components that are only needed in the web-gui environment * but for all vertical profiles like dev, prod and test */ @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) -@Profile({ "dev-gui", "prod-gui", "demo" }) +@Profile({ "gui", "bundled" }) public @interface GuiProfile { } diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdGuiProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdGuiProfile.java deleted file mode 100644 index 0ac248c20..000000000 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdGuiProfile.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2018 ETH Zürich, IT Services - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package ch.ethz.seb.sebserver.gbl.profile; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.annotation.Profile; - -/** Profile annotation for SEB-Server prod-gui components. - * - * Use this as profile annotation on components that are only needed in the gui-service environment - * and only for production and/or testing */ -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) -@Profile({ "prod-gui" }) -public @interface ProdGuiProfile { -} diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdWebServiceProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdWebServiceProfile.java deleted file mode 100644 index bfdc26174..000000000 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/ProdWebServiceProfile.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2018 ETH Zürich, IT Services - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package ch.ethz.seb.sebserver.gbl.profile; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.springframework.context.annotation.Profile; - -/** Profile annotation for SEB-Server prod-ws components. - * - * Use this as profile annotation on components that are only needed in the web-service environment - * and only for production and/or testing */ -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Retention(RetentionPolicy.RUNTIME) -@Profile({ "prod-ws" }) -public @interface ProdWebServiceProfile { -} diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/WebServiceProfile.java b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/WebServiceProfile.java index 1e5205e30..13b1da574 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/profile/WebServiceProfile.java +++ b/src/main/java/ch/ethz/seb/sebserver/gbl/profile/WebServiceProfile.java @@ -16,11 +16,11 @@ import org.springframework.context.annotation.Profile; /** Profile annotation for SEB-Server web-service components. - * + *

* Use this as profile annotation on components that are only needed in the web-service environment * but for all vertical profiles like dev, prod and test */ @Target({ ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) -@Profile({ "dev-ws", "prod-ws", "test", "demo" }) +@Profile({ "ws", "bundled", "test" }) public @interface WebServiceProfile { } diff --git a/src/main/resources/config/application-bundled.properties b/src/main/resources/config/application-bundled.properties new file mode 100644 index 000000000..365275965 --- /dev/null +++ b/src/main/resources/config/application-bundled.properties @@ -0,0 +1 @@ +spring.profiles.include=ws,gui \ No newline at end of file diff --git a/src/main/resources/config/application-dev-gui.properties b/src/main/resources/config/application-dev-gui.properties deleted file mode 100644 index 58cfaa5bd..000000000 --- a/src/main/resources/config/application-dev-gui.properties +++ /dev/null @@ -1,21 +0,0 @@ -server.address=localhost -server.port=8080 - -sebserver.gui.http.external.scheme=http -sebserver.gui.entrypoint=/gui -sebserver.gui.webservice.protocol=http -sebserver.gui.webservice.address=localhost -sebserver.gui.webservice.port=8080 -sebserver.gui.webservice.apipath=/admin-api/v1 -# defines the polling interval that is used to poll the webservice for client connection data on a monitored exam page -sebserver.gui.webservice.poll-interval=1000 - -sebserver.gui.theme=css/sebserver.css -sebserver.gui.list.page.size=15 - -sebserver.gui.multilingual=false -sebserver.gui.supported.languages=en,de -sebserver.gui.date.displayformat=en - -sebserver.gui.seb.client.config.download.filename=SEBServerSettings.seb -sebserver.gui.seb.exam.config.download.filename=SEBExamSettings.seb \ No newline at end of file diff --git a/src/main/resources/config/application-dev-ws.properties b/src/main/resources/config/application-dev-ws.properties deleted file mode 100644 index 2db726221..000000000 --- a/src/main/resources/config/application-dev-ws.properties +++ /dev/null @@ -1,117 +0,0 @@ -server.address=localhost -server.port=8090 - -# data source configuration -spring.datasource.initialize=true -spring.datasource.initialization-mode=always -spring.datasource.url=jdbc:mariadb://localhost:3306/SEBServer?createDatabaseIfNotExist=true&verifyServerCertificate=false&useSSL=false&requireSSL=false -spring.datasource.driver-class-name=org.mariadb.jdbc.Driver -spring.flyway.enabled=true -spring.flyway.locations=classpath:config/sql/base,classpath:config/sql/dev -spring.flyway.cleanDisabled=false -spring.datasource.hikari.initializationFailTimeout=30000 -spring.datasource.hikari.connectionTimeout=30000 -spring.datasource.hikari.idleTimeout=600000 -spring.datasource.hikari.maxLifetime=1800000 -spring.datasource.hikari.maximumPoolSize=10 -spring.datasource.hikari.leakDetectionThreshold=2000 - -sebserver.http.client.connect-timeout=15000 -sebserver.http.client.connection-request-timeout=10000 -sebserver.http.client.read-timeout=30000 -sebserver.webservice.distributed.updateInterval=1000 -sebserver.webservice.distributed.connectionUpdate=2000 -sebserver.webservice.clean-db-on-startup=false - -sebserver.init.database.integrity.try-fix=true - -# webservice setup configuration -sebserver.init.adminaccount.gen-on-init=false -sebserver.webservice.light.setup=false -sebserver.webservice.distributed=false -#sebserver.webservice.master.delay.threshold=10000 -sebserver.webservice.http.external.scheme=http -sebserver.webservice.http.external.servername=localhost -sebserver.webservice.http.external.port=${server.port} -sebserver.webservice.http.redirect.gui=/gui -sebserver.webservice.ping.service.strategy=BATCH - - -sebserver.webservice.api.admin.endpoint=/admin-api/v1 -sebserver.webservice.api.admin.accessTokenValiditySeconds=3600 -sebserver.webservice.api.admin.refreshTokenValiditySeconds=-1 -sebserver.webservice.api.admin.exam.app.signature.key.enabled=true -sebserver.webservice.api.exam.config.init.permittedProcesses=config/initialPermittedProcesses.xml -sebserver.webservice.api.exam.config.init.prohibitedProcesses=config/initialProhibitedProcesses.xml -sebserver.webservice.api.exam.time-prefix=0 -sebserver.webservice.api.exam.time-suffix=0 -sebserver.webservice.api.exam.endpoint=/exam-api -sebserver.webservice.api.exam.endpoint.discovery=${sebserver.webservice.api.exam.endpoint}/discovery -sebserver.webservice.api.exam.endpoint.v1=${sebserver.webservice.api.exam.endpoint}/v1 -sebserver.webservice.api.exam.enable-indicator-cache=true -sebserver.webservice.api.exam.defaultPingInterval=1000 -sebserver.webservice.api.pagination.maxPageSize=500 -# comma separated list of known possible OpenEdX API access token request endpoints -sebserver.webservice.lms.openedx.api.token.request.paths=/oauth2/access_token -sebserver.webservice.lms.moodle.api.token.request.paths= -sebserver.webservice.lms.address.alias=lms.mockup.com=lms.address.alias -sebserver.webservice.cache.moodle.course.pageSize=250 - -# actuator configuration -#management.server.port=${server.port} -#management.endpoints.web.base-path=/management -#management.endpoints.web.exposure.include=logfile,loggers,jolokia -#management.endpoints.web.path-mapping.jolokia=jmx -### Open API Documentation -springdoc.api-docs.enabled=true -springdoc.swagger-ui.enabled=true -springdoc.swagger-ui.oauth.clientId=guiClient -springdoc.swagger-ui.oauth.clientSecret=${sebserver.password} -#springdoc.consumes-to-match=application/json,application/x-www-form-urlencoded -#springdoc.default-consumes-media-type=application/x-www-form-urlencoded -springdoc.paths-to-exclude=/exam-api,/exam-api/discovery,/sebserver/error,/sebserver/check,/oauth,/exam-api/v1/* - -# features - -sebserver.feature.exam.seb.screenProctoring.enabled=true -sebserver.feature.exam.seb.screenProctoring.bundled=true -sebserver.feature.exam.seb.screenProctoring.bundled.url=http://localhost:8090 -sebserver.feature.exam.seb.screenProctoring.bundled.clientId=sebserverClient -sebserver.feature.exam.seb.screenProctoring.bundled.sebserveraccount.username=SEBServerAPIAccount - -#sebserver.feature.admin.user.administration.enabled=false -#sebserver.feature.admin.user.account.enabled=false -#sebserver.feature.admin.institution.enabled=false -#sebserver.feature.admin.auditlogs.enabled=false -# -#sebserver.feature.config.connection.configuration.enabled=false -#sebserver.feature.config.exam.configuration.enabled=false -#sebserver.feature.config.template.enabled=false -#sebserver.feature.config.certificate.enabled=false -# -#sebserver.feature.lms.setup.type.ANS_DELFT.enabled=false -#sebserver.feature.lms.setup.type.OLAT.enabled=false -# -#sebserver.feature.exam.ask.enabled=false -#sebserver.feature.exam.seb.restriction.enabled=false - -#sebserver.feature.exam.seb.screenProctoring.enabled=false -#sebserver.feature.exam.monitoring.indicators.enabled=false -#sebserver.feature.exam.connection.config.enabled=false -#sebserver.feature.exam.seb.clientgroups.enabled=false -# -#sebserver.feature.exam.template.enabled=false -#sebserver.feature.exam.noLMS.enabled=false -# -#sebserver.feature.monitoring.running.exam.quit.enabled=false -#sebserver.feature.monitoring.running.exam.lockscreen.enabled=false -#sebserver.feature.monitoring.running.exam.cancel.connection.enabled=false -#sebserver.feature.monitoring.running.exam.state.filter.enabled=false -# -#sebserver.feature.monitoring.running.exams.enabled=false -#sebserver.feature.monitoring.finished.exams.enabled=false -#sebserver.feature.monitoring.overall.export.enabled=false -# -#sebserver.feature.lms.quiz.lookup.enabled=false -#sebserver.feature.exam.administration.enabled=false -#sebserver.feature.lms.setup.enabled=false diff --git a/src/main/resources/config/application-dev.properties b/src/main/resources/config/application-dev.properties index dbbd8b469..080a49ed1 100644 --- a/src/main/resources/config/application-dev.properties +++ b/src/main/resources/config/application-dev.properties @@ -1,5 +1,3 @@ -spring.profiles.include=dev-ws,dev-gui - sebserver.test.property=This is the development Setup server.address=localhost @@ -10,21 +8,145 @@ server.http2.enabled=true logging.level.ROOT=INFO logging.level.ch=INFO -logging.level.ch.ethz.seb.sebserver.webservice.datalayer=INFO logging.level.org.springframework.cache=DEBUG -logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.lms.impl=INFO -logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.session=DEBUG -logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.proctoring=DEBUG -logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.session.impl.indicator=INFO logging.level.ch.ethz.seb.sebserver.webservice.weblayer.oauth=DEBUG -#logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.dao.impl=DEBUG -#logging.level.ch.ethz.seb.sebserver.webservice.datalayer.batis=DEBUG -#logging.level.ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper=DEBUG -#logging.level.ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.SecurityKeyRegistryRecordMapper=DEBUG -#logging.level.ch.ethz.seb.sebserver.webservice.weblayer.api.ExamAPI_V1_Controller=TRACE -logging.level.com.zaxxer.hikari=INFO -#logging.level.ch.ethz.seb.sebserver.webservice.servicelayer.dao=DEBUG +logging.level.ch.ethz.seb.sebserver.webservice.servicelayer=DEBUG + +###### GUI Properties +######################################################################################################################## +sebserver.gui.http.external.scheme=http +sebserver.gui.entrypoint=/gui +sebserver.gui.webservice.protocol=http +sebserver.gui.webservice.address=localhost +sebserver.gui.webservice.port=8080 +sebserver.gui.webservice.apipath=/admin-api/v1 +# defines the polling interval that is used to poll the webservice for client connection data on a monitored exam page +sebserver.gui.webservice.poll-interval=1000 + +sebserver.gui.theme=css/sebserver.css +sebserver.gui.list.page.size=15 + +sebserver.gui.multilingual=false +sebserver.gui.supported.languages=en,de +sebserver.gui.date.displayformat=en + +sebserver.gui.seb.client.config.download.filename=SEBServerSettings.seb +sebserver.gui.seb.exam.config.download.filename=SEBExamSettings.seb + +###### Webservice Properties +######################################################################################################################## + +# data source configuration +spring.datasource.initialize=true +spring.datasource.initialization-mode=always +spring.datasource.url=jdbc:mariadb://localhost:3306/SEBServer?createDatabaseIfNotExist=true&verifyServerCertificate=false&useSSL=false&requireSSL=false +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.flyway.enabled=true +spring.flyway.locations=classpath:config/sql/base,classpath:config/sql/dev +spring.flyway.cleanDisabled=false +spring.datasource.hikari.initializationFailTimeout=30000 +spring.datasource.hikari.connectionTimeout=30000 +spring.datasource.hikari.idleTimeout=600000 +spring.datasource.hikari.maxLifetime=1800000 +spring.datasource.hikari.maximumPoolSize=10 +spring.datasource.hikari.leakDetectionThreshold=2000 sebserver.http.client.connect-timeout=15000 sebserver.http.client.connection-request-timeout=10000 sebserver.http.client.read-timeout=60000 +sebserver.webservice.distributed.updateInterval=1000 +sebserver.webservice.distributed.connectionUpdate=2000 +sebserver.webservice.clean-db-on-startup=false + +sebserver.init.database.integrity.try-fix=true + +# webservice setup configuration +sebserver.init.adminaccount.gen-on-init=false +sebserver.webservice.light.setup=false +sebserver.webservice.distributed=false +#sebserver.webservice.master.delay.threshold=10000 +sebserver.webservice.http.external.scheme=http +sebserver.webservice.http.external.servername=localhost +sebserver.webservice.http.external.port=${server.port} +sebserver.webservice.http.redirect.gui=/gui +sebserver.webservice.ping.service.strategy=BATCH + + +sebserver.webservice.api.admin.endpoint=/admin-api/v1 +sebserver.webservice.api.admin.accessTokenValiditySeconds=3600 +sebserver.webservice.api.admin.refreshTokenValiditySeconds=-1 +sebserver.webservice.api.admin.exam.app.signature.key.enabled=true +sebserver.webservice.api.exam.config.init.permittedProcesses=config/initialPermittedProcesses.xml +sebserver.webservice.api.exam.config.init.prohibitedProcesses=config/initialProhibitedProcesses.xml +sebserver.webservice.api.exam.time-prefix=0 +sebserver.webservice.api.exam.time-suffix=0 +sebserver.webservice.api.exam.endpoint=/exam-api +sebserver.webservice.api.exam.endpoint.discovery=${sebserver.webservice.api.exam.endpoint}/discovery +sebserver.webservice.api.exam.endpoint.v1=${sebserver.webservice.api.exam.endpoint}/v1 +sebserver.webservice.api.exam.enable-indicator-cache=true +sebserver.webservice.api.exam.defaultPingInterval=1000 +sebserver.webservice.api.pagination.maxPageSize=500 +# comma separated list of known possible OpenEdX API access token request endpoints +sebserver.webservice.lms.openedx.api.token.request.paths=/oauth2/access_token +sebserver.webservice.lms.moodle.api.token.request.paths= +sebserver.webservice.lms.address.alias=lms.mockup.com=lms.address.alias +sebserver.webservice.cache.moodle.course.pageSize=250 + +# actuator configuration +#management.server.port=${server.port} +#management.endpoints.web.base-path=/management +#management.endpoints.web.exposure.include=logfile,loggers,jolokia +#management.endpoints.web.path-mapping.jolokia=jmx +### Open API Documentation +springdoc.api-docs.enabled=true +springdoc.swagger-ui.enabled=true +springdoc.swagger-ui.oauth.clientId=guiClient +springdoc.swagger-ui.oauth.clientSecret=${sebserver.password} +#springdoc.consumes-to-match=application/json,application/x-www-form-urlencoded +#springdoc.default-consumes-media-type=application/x-www-form-urlencoded +springdoc.paths-to-exclude=/exam-api,/exam-api/discovery,/sebserver/error,/sebserver/check,/oauth,/exam-api/v1/* + +# features + +sebserver.feature.exam.seb.screenProctoring.enabled=true +sebserver.feature.exam.seb.screenProctoring.bundled=true +sebserver.feature.exam.seb.screenProctoring.bundled.url=http://localhost:8090 +sebserver.feature.exam.seb.screenProctoring.bundled.clientId=sebserverClient +sebserver.feature.exam.seb.screenProctoring.bundled.sebserveraccount.username=SEBServerAPIAccount + +#sebserver.feature.admin.user.administration.enabled=false +#sebserver.feature.admin.user.account.enabled=false +#sebserver.feature.admin.institution.enabled=false +#sebserver.feature.admin.auditlogs.enabled=false +# +#sebserver.feature.config.connection.configuration.enabled=false +#sebserver.feature.config.exam.configuration.enabled=false +#sebserver.feature.config.template.enabled=false +#sebserver.feature.config.certificate.enabled=false +# +#sebserver.feature.lms.setup.type.ANS_DELFT.enabled=false +#sebserver.feature.lms.setup.type.OLAT.enabled=false +# +#sebserver.feature.exam.ask.enabled=false +#sebserver.feature.exam.seb.restriction.enabled=false + +#sebserver.feature.exam.seb.screenProctoring.enabled=false +#sebserver.feature.exam.monitoring.indicators.enabled=false +#sebserver.feature.exam.connection.config.enabled=false +#sebserver.feature.exam.seb.clientgroups.enabled=false +# +#sebserver.feature.exam.template.enabled=false +#sebserver.feature.exam.noLMS.enabled=false +# +#sebserver.feature.monitoring.running.exam.quit.enabled=false +#sebserver.feature.monitoring.running.exam.lockscreen.enabled=false +#sebserver.feature.monitoring.running.exam.cancel.connection.enabled=false +#sebserver.feature.monitoring.running.exam.state.filter.enabled=false +# +#sebserver.feature.monitoring.running.exams.enabled=false +#sebserver.feature.monitoring.finished.exams.enabled=false +#sebserver.feature.monitoring.overall.export.enabled=false +# +#sebserver.feature.lms.quiz.lookup.enabled=false +#sebserver.feature.exam.administration.enabled=false +#sebserver.feature.lms.setup.enabled=false \ No newline at end of file diff --git a/src/main/resources/config/application.properties b/src/main/resources/config/application.properties index 1879621e9..1d04db7c2 100644 --- a/src/main/resources/config/application.properties +++ b/src/main/resources/config/application.properties @@ -1,6 +1,6 @@ spring.config.use-legacy-processing=true spring.application.name=SEB Server -spring.profiles.active=ws,gui,dev +spring.profiles.active=bundled,prod sebserver.version=@sebserver-version@ ########################################################## diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 9ada70210..bcc39d1b4 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -16,31 +16,34 @@ - - + + + + + + + + + - - - -