From 5f17981f7383c265cc4010d7ce6cdf2eb5912855 Mon Sep 17 00:00:00 2001 From: dbulahov Date: Mon, 3 Nov 2025 13:33:29 +0300 Subject: [PATCH] add url in RequestMetaData Signed-off-by: dbulahov --- .../java/org/eclipse/daanse/xmla/api/RequestMetaData.java | 2 ++ .../eclipse/daanse/xmla/model/record/RequestMetaDataR.java | 2 +- .../server/adapter/soapmessage/RequestMetaDataUtils.java | 5 +++-- .../xmla/server/adapter/soapmessage/XmlaApiAdapter.java | 4 ++-- .../daanse/xmla/server/jakarta/jws/ApiXmlaWsAdapter.java | 5 +++++ .../daanse/xmla/server/jakarta/saaj/impl/XmlaServlet.java | 4 ++-- .../xml/ws/provider/soapmessage/XmlaWebserviceProvider.java | 2 +- .../xmla/server/jdk/httpserver/XmlaSoapHttpHandler.java | 2 +- 8 files changed, 17 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/org/eclipse/daanse/xmla/api/RequestMetaData.java b/api/src/main/java/org/eclipse/daanse/xmla/api/RequestMetaData.java index ff31d3d..2b45d9e 100644 --- a/api/src/main/java/org/eclipse/daanse/xmla/api/RequestMetaData.java +++ b/api/src/main/java/org/eclipse/daanse/xmla/api/RequestMetaData.java @@ -19,4 +19,6 @@ public interface RequestMetaData { Optional userAgent(); Optional sessionId(); + + Optional url(); } diff --git a/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/RequestMetaDataR.java b/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/RequestMetaDataR.java index 7125547..2b1ad0f 100644 --- a/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/RequestMetaDataR.java +++ b/model.record/src/main/java/org/eclipse/daanse/xmla/model/record/RequestMetaDataR.java @@ -16,6 +16,6 @@ import org.eclipse.daanse.xmla.api.RequestMetaData; -public record RequestMetaDataR(Optional userAgent, Optional sessionId) implements RequestMetaData { +public record RequestMetaDataR(Optional userAgent, Optional sessionId, Optional url) implements RequestMetaData { } diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/RequestMetaDataUtils.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/RequestMetaDataUtils.java index 76244a1..fb4e9a7 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/RequestMetaDataUtils.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/RequestMetaDataUtils.java @@ -25,10 +25,11 @@ public class RequestMetaDataUtils { public static final String USER_AGENT = "User-agent"; - public static RequestMetaData getRequestMetaData(Map headers, Optional oSession) { + public static RequestMetaData getRequestMetaData(Map headers, Optional oSession, String url) { Optional oUserAgent = getUserAgent(headers.get(USER_AGENT)); return new RequestMetaDataR(oUserAgent, - oSession.isPresent() ? Optional.of(oSession.get().sessionId()) : Optional.empty()); + oSession.isPresent() ? Optional.of(oSession.get().sessionId()) : Optional.empty(), + Optional.ofNullable(url)); } private static Optional getUserAgent(Object o) { diff --git a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java index 45a267f..7c1e851 100644 --- a/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java +++ b/server/adapter.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/adapter/soapmessage/XmlaApiAdapter.java @@ -208,7 +208,7 @@ public XmlaApiAdapter(XmlaService xmlaService) { private static final QName QN_SESSION = new QName("urn:schemas-microsoft-com:xml-analysis", "Session"); public SOAPMessage handleRequest(SOAPMessage messageRequest, Map headers, Principal principal, - Function isUserInRoleFunction) { + Function isUserInRoleFunction, String url) { try { SOAPMessage messageResponse = MessageFactory.newInstance().createMessage(); messageResponse.setProperty(SOAPMessage.WRITE_XML_DECLARATION, "true"); @@ -257,7 +257,7 @@ public boolean hasRole(String role) { SOAPHeader header = envelopeResponse.getHeader(); header.setValue("\n"); } - RequestMetaData metaData = RequestMetaDataUtils.getRequestMetaData(headers, oSession); + RequestMetaData metaData = RequestMetaDataUtils.getRequestMetaData(headers, oSession, url); SOAPBody bodyResponse = envelopeResponse.getBody(); handleBody(messageRequest.getSOAPBody(), bodyResponse, metaData, userPrincipal); return messageResponse; diff --git a/server/jakarta.jws/src/main/java/org/eclipse/daanse/xmla/server/jakarta/jws/ApiXmlaWsAdapter.java b/server/jakarta.jws/src/main/java/org/eclipse/daanse/xmla/server/jakarta/jws/ApiXmlaWsAdapter.java index faa3de1..3725461 100644 --- a/server/jakarta.jws/src/main/java/org/eclipse/daanse/xmla/server/jakarta/jws/ApiXmlaWsAdapter.java +++ b/server/jakarta.jws/src/main/java/org/eclipse/daanse/xmla/server/jakarta/jws/ApiXmlaWsAdapter.java @@ -224,6 +224,11 @@ public Optional sessionId() { return Optional.empty(); } + @Override + public Optional url() { + return Optional.empty(); + } + }; DbSchemaCatalogsRequest requestApi = Convert.fromDiscoverDbSchemaCatalogs(requestWs); diff --git a/server/jakarta.saaj/src/main/java/org/eclipse/daanse/xmla/server/jakarta/saaj/impl/XmlaServlet.java b/server/jakarta.saaj/src/main/java/org/eclipse/daanse/xmla/server/jakarta/saaj/impl/XmlaServlet.java index ad30e9a..c41842f 100644 --- a/server/jakarta.saaj/src/main/java/org/eclipse/daanse/xmla/server/jakarta/saaj/impl/XmlaServlet.java +++ b/server/jakarta.saaj/src/main/java/org/eclipse/daanse/xmla/server/jakarta/saaj/impl/XmlaServlet.java @@ -57,7 +57,7 @@ public void activate() { } @Override - public SOAPMessage onMessage(SOAPMessage soapMessage,Principal principal, Function isUserInRoleFunction) { + public SOAPMessage onMessage(SOAPMessage soapMessage,Principal principal, Function isUserInRoleFunction, String url) { try { if (LOGGER.isDebugEnabled()) { LOGGER.debug("SoapMessage in:", prettyPrint(soapMessage).toString()); @@ -66,7 +66,7 @@ public SOAPMessage onMessage(SOAPMessage soapMessage,Principal principal, Functi Map map = StreamSupport.stream(iterable.spliterator(), true).collect( Collectors.toMap(MimeHeader::getName, MimeHeader::getValue, (oldValue, newValue) -> oldValue)); - SOAPMessage returnMessage = xmlaAdapter.handleRequest(soapMessage, map, principal, isUserInRoleFunction); + SOAPMessage returnMessage = xmlaAdapter.handleRequest(soapMessage, map, principal, isUserInRoleFunction, url); LOGGER.debug("SoapMessage out:", prettyPrint(returnMessage).toString()); diff --git a/server/jakarta.xml.ws.provider.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/jakarta/xml/ws/provider/soapmessage/XmlaWebserviceProvider.java b/server/jakarta.xml.ws.provider.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/jakarta/xml/ws/provider/soapmessage/XmlaWebserviceProvider.java index 8f9639a..16051e2 100644 --- a/server/jakarta.xml.ws.provider.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/jakarta/xml/ws/provider/soapmessage/XmlaWebserviceProvider.java +++ b/server/jakarta.xml.ws.provider.soapmessage/src/main/java/org/eclipse/daanse/xmla/server/jakarta/xml/ws/provider/soapmessage/XmlaWebserviceProvider.java @@ -76,7 +76,7 @@ public SOAPMessage invoke(SOAPMessage request) { .get(MessageContext.HTTP_REQUEST_HEADERS); LOGGER.debug("===== The provider got a request ====="); - return wsAdapter.handleRequest(request, headers,null,null); + return wsAdapter.handleRequest(request, headers,null,null, null); } private SOAPFault getFault(Exception ex) { diff --git a/server/jdk.httpserver/src/main/java/org/eclipse/daanse/xmla/server/jdk/httpserver/XmlaSoapHttpHandler.java b/server/jdk.httpserver/src/main/java/org/eclipse/daanse/xmla/server/jdk/httpserver/XmlaSoapHttpHandler.java index 9d29050..3a74108 100644 --- a/server/jdk.httpserver/src/main/java/org/eclipse/daanse/xmla/server/jdk/httpserver/XmlaSoapHttpHandler.java +++ b/server/jdk.httpserver/src/main/java/org/eclipse/daanse/xmla/server/jdk/httpserver/XmlaSoapHttpHandler.java @@ -29,6 +29,6 @@ public class XmlaSoapHttpHandler extends AbstractSoapHttpHandler { @Override protected SOAPMessage onMessage(SOAPMessage req) { - return adapter.handleRequest(req, Collections.emptyMap(),null,null); + return adapter.handleRequest(req, Collections.emptyMap(),null,null,null); } };