diff --git a/ccu-historian/src-webapp/query/jsonrpc.gy b/ccu-historian/src-webapp/query/jsonrpc.gy index fb8d0263..4c791fef 100644 --- a/ccu-historian/src-webapp/query/jsonrpc.gy +++ b/ccu-historian/src-webapp/query/jsonrpc.gy @@ -32,6 +32,18 @@ import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer @Field private final static log = Logger.getLogger('mdz.ccuhistorian.webapp.JsonRpc') +// add CORS headers +response.setHeader('Access-Control-Allow-Origin', webServer.config.corsOrigin); +if (webServer.config.corsOrigin!='*') { + response.setHeader('Access-Control-Allow-Credentials', 'true'); +} +response.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,OPTIONS'); +response.setHeader('Access-Control-Allow-Headers', '*'); +if (request.method=="OPTIONS") { + response.status=response.SC_ACCEPTED + return +} + def rpcResponse=[:] rpcResponse.id=null try { diff --git a/ccu-historian/src/mdz/ccuhistorian/webapp/WebServerConfig.groovy b/ccu-historian/src/mdz/ccuhistorian/webapp/WebServerConfig.groovy index edbcab5b..9fcfb192 100644 --- a/ccu-historian/src/mdz/ccuhistorian/webapp/WebServerConfig.groovy +++ b/ccu-historian/src/mdz/ccuhistorian/webapp/WebServerConfig.groovy @@ -39,6 +39,7 @@ class WebServerConfig { Map trendDesigns=[:].withDefault { new TrendDesign(identifier: (String)it, displayName: (String)it) } Map menuLinks=new TreeMap().withDefault { new Link() } String[] apiKeys=[] + String corsOrigin="*" void logDebug() { log.fine "webServer.port=$port" @@ -48,5 +49,6 @@ class WebServerConfig { log.fine "webServer.trendDesigns=[${trendDesigns.collect { it.key }.join(', ')}]" log.fine "webServer.apiKeys=[${apiKeys.collect { "'$it'" }.join(', ')}]" log.fine "webServer.menuLinks=[${menuLinks.values().collect { it.text }.join(', ')}]" + log.fine "webServer.corsOrigin='$corsOrigin'" } } diff --git a/dist-generic/src/ccu-historian-sample.config b/dist-generic/src/ccu-historian-sample.config index 2626d756..0cb4a501 100644 --- a/dist-generic/src/ccu-historian-sample.config +++ b/dist-generic/src/ccu-historian-sample.config @@ -35,6 +35,7 @@ // webServer.trendDesigns ... (s.a. https://github.com/mdzio/ccu-historian/wiki#anpassung-der-trend-darstellung) // webServer.apiKeys=[] // webServer.menuLinks ... (s.a. https://github.com/mdzio/ccu-historian/wiki#eigene-verweise-auf-web-seiten) +// webServer.corsOrigin='*' // historian.metaCycle=3600000 // 1 Stunde // historian.bufferCount=5000 // historian.bufferTime=0