Runtime properties renginering

This commit is contained in:
Claude Brisson
2023-11-02 11:05:40 +01:00
parent 8e5450486e
commit 5fdf3e8944
11 changed files with 47 additions and 110 deletions

View File

@@ -21,7 +21,7 @@ abstract class OAuthHelper {
protected get() = WebappManager.getMandatoryProperty("oauth." + name + ".secret")
protected val redirectURI: String?
protected get() = try {
val uri: String = WebappManager.Companion.getProperty("webapp.url") + "/oauth.html"
val uri: String = WebappManager.getProperty("webapp.external.url") + "/oauth.html"
URLEncoder.encode(uri, "UTF-8")
} catch (uee: UnsupportedEncodingException) {
logger.error("could not encode redirect URI", uee)

View File

@@ -62,7 +62,7 @@ class ApiServlet : HttpServlet() {
// validate request
if ("dev" == WebappManager.getProperty("webapp.env")) {
if ("dev" == WebappManager.getProperty("env")) {
response.addHeader("Access-Control-Allow-Origin", "*")
}
validateAccept(request);

View File

@@ -62,7 +62,7 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H
properties[(key as String).removePrefix(PAIRGOTH_PROPERTIES_PREFIX)] = value
}
val env = properties.getProperty("webapp.env")
val env = properties.getProperty("env")
logger.info("Using profile $env", )
// set system user agent string to empty string
@@ -116,10 +116,10 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H
return properties.getProperty(prop)
}
fun getMandatoryProperty(prop: String): String {
return properties.getProperty(prop) ?: throw Error("missing property: ${prop}")
return getProperty(prop) ?: throw Error("missing property: ${prop}")
}
val webappURL by lazy { getProperty("webapp.url") }
val webappURL by lazy { getProperty("webapp.external.url") }
private val services = mutableMapOf<String, Pair<Runnable, Thread>>()

View File

@@ -1,6 +1,19 @@
# webapp
webapp.env = dev
webapp.url = https://localhost:8085
# environment
env = dev
# webapp connector
webapp.protocol = http
webapp.interface = localhost
webapp.port = 8080
webapp.context = /
webapp.external.url = http://localhost:8080
# api connector
api.protocol = http
api.interface = localhost
api.port = 8085
api.context = /api
api.external.url = http://localhost:8085/api
# store
store = file