Client Receives Incorrect Port (HTTP 403) During WS-AT Registration When WLS Admin Port Is Enabled (Doc ID 1434323.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle WebLogic Server - Version 10.3.4.0.1 to 10.3.4.0.1
Information in this document applies to any platform.

Symptoms


On : 10.3.4.0 version, WLS-WebServices

Having two WLS domains and an application using Web Services and Atomic Transactions with the client and web service in a different domain, and the WLS administration port enabled, we get errors avoiding the possibility of using this type of configuration in a WLS environment with Web Services and Atomic Transactions.

host.us.oracle.com
client_domain
Client Application => WsatBankTransfer


host.us.oracle.com
server_domain
Web Service => WsatBankTransferService



Results:


ADMIN PORT DISABLED

Request

POST http://mhernand-us.us.oracle.com:8001/WsatBankTransferService/WSHttpBindingIService HTTP/1.1
Content-type: text/xml;charset="utf-8"
Soapaction: "http://tempuri.org/WsatBankTransferService/listAccountRequest"
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: Oracle JAX-WS 2.1.5
Host: 10.154.31.166:8081
Connection: Keep-Alive
Content-Length: 2670
X-Forwarded-For: 10.141.161.52

<?xml version = '1.0' encoding = 'UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://10.154.31.166:8081/WsatBankTransferService/WSHttpBindingIService</wsa:To>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://tempuri.org/WsatBankTransferService/listAccountRequest</wsa:Action>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
<FaultTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</FaultTo>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:d9715f48-9163-4e26-b41f-218ffae569b8</wsa:MessageID>
<work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0ABXoAAAKcADBvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkAAAFPAAAAKXdlYmxvZ2ljLndvcmthcmVhLlNlcmlhbGl6YWJsZVdvcmtDb250ZXh0AAABh6ztAAVzcgAxd2VibG9naWMud29ya2FyZWEuU2VyaWFsaXphYmxlV29ya0NvbnRleHQkQ2Fycmllcv1CAh9z5wpPAwACWgAHbXV0YWJsZUwADHNlcmlhbGl6YWJsZXQAFkxqYXZhL2lvL1NlcmlhbGl6YWJsZTt4cgAQamF2YS5sYW5nLk9iamVjdAAAAAAAAAAAAAAAeHB3BAAAAAFzcgBBb3JhY2xlLmRtcy5jb250ZXh0LmludGVybmFsLndscy5XTFNDb250ZXh0RmFtaWx5JFNlcmlhbGl6YWJsZUltcGwAAAAAAAAAAAMAAUwAEW1XTFNDb250ZXh0RmFtaWx5dAAyTG9yYWNsZS9kbXMvY29udGV4dC9pbnRlcm5hbC93bHMvV0xTQ29udGV4dEZhbWlseTt4cQB+AAJ3RABCMS5mZmZmZDQzNjUxMWI1MTBjOi0yY2M2ZDNiZDoxMzMwNDUxNjgxZjotODAwMC0wMDAwMDAwMDAwMDAwNDJkO3YweHcBAXgAJndlYmxvZ2ljLmRpYWdub3N0aWNzLkRpYWdub3N0aWNDb250ZXh0AAABfwAAADJ3ZWJsb2dpYy5kaWFnbm9zdGljcy5jb250ZXh0LkRpYWdub3N0aWNDb250ZXh0SW1wbAAAAD1mZmZmZDQzNjUxMWI1MTBjOi0yY2M2ZDNiZDoxMzMwNDUxNjgxZjotODAwMC0wMDAwMDAwMDAwMDAwNDJkAAAAAAAAAAAAAAA=</work:WorkContext>
<CoordinationContext xmlns:ns3="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns="http://schemas.xmlsoap.org/ws/2004/10/wscoor" ns3:mustUnderstand="1">
<Identifier>urn:uuid:BEA1-0FAFE7FB096F3FFFE09A</Identifier>
<Expires>900000</Expires>
<CoordinationType>http://schemas.xmlsoap.org/ws/2004/10/wsat</CoordinationType>
<RegistrationService>
<ns2:Address>http://10.141.161.52:8001/wls-wsat/RegistrationPortTypeRPC</ns2:Address>
<ns2:ReferenceParameters>
<wls-wsat:txId xmlns:wls-wsat="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat">BEA1-0FAFE7FB096F3FFFE09A</wls-wsat:txId>
<wls-wsat:routing xmlns:wls-wsat="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat">soa_server1</wls-wsat:routing>
</ns2:ReferenceParameters>
</RegistrationService>
</CoordinationContext>
</S:Header>
<S:Body>
<ns2:listAccount xmlns:ns2="http://tempuri.org/"/>
</S:Body>
</S:Envelope>



Response

HTTP/1.1 200 OK
Date: Fri, 14 Oct 2011 21:17:13 GMT
X-Transfer-Encoding: chunked
Content-Type: text/xml;charset="utf-8"
X-Powered-By: Servlet/2.5 JSP/2.1

<?xml version = '1.0' encoding = 'UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://tempuri.org/WsatBankTransferService/listAccountResponse</wsa:Action>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:01a5f058-6544-4da2-8527-ff05978458c2</wsa:MessageID>
<wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:d9715f48-9163-4e26-b41f-218ffae569b8</wsa:RelatesTo>
</S:Header>
<S:Body>
<ns2:listAccountResponse xmlns:ns2="http://tempuri.org/">
<return><P align="left">Remote Bank Account</P><TABLE border="1"><TR><TH>Acct no</TH><TH>Amount</TH></TR><TR><TD align="right">1</TD><TD align="right">300</TD></TR></TABLE></return>
</ns2:listAccountResponse>
</S:Body>
</S:Envelope>


All is working fine.


ERROR

AS SOON AS THE ADMIN PORT IS ENABLED

Request:

POST http://mhernand-us.us.oracle.com:8001/WsatBankTransferService/WSHttpBindingIService HTTP/1.1
Content-type: text/xml;charset="utf-8"
Soapaction: "http://tempuri.org/WsatBankTransferService/listAccountRequest"
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: Oracle JAX-WS 2.1.5
Host: 10.154.31.166:8081
Connection: Keep-Alive
Content-Length: 2666
X-Forwarded-For: 10.141.161.52

<?xml version = '1.0' encoding = 'UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://10.154.31.166:8081/WsatBankTransferService/WSHttpBindingIService</wsa:To>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://tempuri.org/WsatBankTransferService/listAccountRequest</wsa:Action>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
<FaultTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</FaultTo>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:c28e9377-6ecb-42d7-9fed-343d8c9a4c3e</wsa:MessageID>
<work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0ABXoAAAKaADBvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkAAAFPAAAAKXdlYmxvZ2ljLndvcmthcmVhLlNlcmlhbGl6YWJsZVdvcmtDb250ZXh0AAABhqztAAVzcgAxd2VibG9naWMud29ya2FyZWEuU2VyaWFsaXphYmxlV29ya0NvbnRleHQkQ2Fycmllcv1CAh9z5wpPAwACWgAHbXV0YWJsZUwADHNlcmlhbGl6YWJsZXQAFkxqYXZhL2lvL1NlcmlhbGl6YWJsZTt4cgAQamF2YS5sYW5nLk9iamVjdAAAAAAAAAAAAAAAeHB3BAAAAAFzcgBBb3JhY2xlLmRtcy5jb250ZXh0LmludGVybmFsLndscy5XTFNDb250ZXh0RmFtaWx5JFNlcmlhbGl6YWJsZUltcGwAAAAAAAAAAAMAAUwAEW1XTFNDb250ZXh0RmFtaWx5dAAyTG9yYWNsZS9kbXMvY29udGV4dC9pbnRlcm5hbC93bHMvV0xTQ29udGV4dEZhbWlseTt4cQB+AAJ3QwBBMS5mZmZmZDQzNjUxMWI1MTBjOjI0MWZjMzQ0OjEzMzA0NjEwNWI0Oi04MDAwLTAwMDAwMDAwMDAwMDAwNzA7djB4dwEBeAAmd2VibG9naWMuZGlhZ25vc3RpY3MuRGlhZ25vc3RpY0NvbnRleHQAAAF/AAAAMndlYmxvZ2ljLmRpYWdub3N0aWNzLmNvbnRleHQuRGlhZ25vc3RpY0NvbnRleHRJbXBsAAAAPGZmZmZkNDM2NTExYjUxMGM6MjQxZmMzNDQ6MTMzMDQ2MTA1YjQ6LTgwMDAtMDAwMDAwMDAwMDAwMDA3MAAAAAAAAAAAAAAA</work:WorkContext>
<CoordinationContext xmlns:ns3="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns="http://schemas.xmlsoap.org/ws/2004/10/wscoor" ns3:mustUnderstand="1">
<Identifier>urn:uuid:BEA1-01493B9AEA703FFFE09A</Identifier>
<Expires>900000</Expires>
<CoordinationType>http://schemas.xmlsoap.org/ws/2004/10/wsat</CoordinationType>
<RegistrationService>
<ns2:Address>http://10.141.161.52:8001/wls-wsat/RegistrationPortTypeRPC</ns2:Address>
<ns2:ReferenceParameters>
<wls-wsat:txId xmlns:wls-wsat="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat">BEA1-01493B9AEA703FFFE09A</wls-wsat:txId>
<wls-wsat:routing xmlns:wls-wsat="http://weblogic.wsee.wstx.wsat/ws/2008/10/wsat">soa_server1</wls-wsat:routing>
</ns2:ReferenceParameters>
</RegistrationService>
</CoordinationContext>
</S:Header>
<S:Body>
<ns2:listAccount xmlns:ns2="http://tempuri.org/"/>
</S:Body>
</S:Envelope>




Response:

HTTP/1.1 500 Internal Server Error
Date: Fri, 14 Oct 2011 21:22:23 GMT
X-Transfer-Encoding: chunked
Content-Type: text/xml;charset="utf-8"
X-Powered-By: Servlet/2.5 JSP/2.1

<?xml version = '1.0' encoding = 'UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/fault</wsa:Action>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:ad35faf5-dfd8-46f2-9152-e0b8641e870e</wsa:MessageID>
<wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:c28e9377-6ecb-42d7-9fed-343d8c9a4c3e</wsa:RelatesTo>
</S:Header>
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>The server sent HTTP status code 403: Forbidden: http://10.141.161.52:8001/wls-wsat/RegistrationPortTypeRPC</faultstring>
<detail>
<ns2:exception xmlns:ns2="http://jax-ws.dev.java.net/" class="com.sun.xml.ws.client.ClientTransportAccessException" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false">
<message>The server sent HTTP status code 403: Forbidden: http://10.141.161.52:8001/wls-wsat/RegistrationPortTypeRPC</message>
<ns2:stackTrace>
<ns2:frame class="com.sun.xml.ws.transport.http.client.HttpTransportPipe" file="HttpTransportPipe.java" line="340" method="getClientTransportException"/>
<ns2:frame class="com.sun.xml.ws.transport.http.client.HttpTransportPipe" file="HttpTransportPipe.java" line="328" method="checkStatusCodeOneway"/>
<ns2:frame class="com.sun.xml.ws.transport.http.client.HttpTransportPipe" file="HttpTransportPipe.java" line="230" method="process"/>
<ns2:frame class="com.sun.xml.ws.transport.http.client.HttpTransportPipe" file="HttpTransportPipe.java" line="124" method="processRequest"/>
<ns2:frame class="com.sun.xml.ws.transport.DeferredTransportPipe" file="DeferredTransportPipe.java" line="121" method="processRequest"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="866" method="__doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="815" method="_doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="778" method="doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="680" method="runSync"/>
<ns2:frame class="com.sun.xml.ws.client.Stub" file="Stub.java" line="272" method="process"/>
<ns2:frame class="com.sun.xml.ws.client.sei.SEIStub" file="SEIStub.java" line="153" method="doProcess"/>
<ns2:frame class="com.sun.xml.ws.client.sei.SyncMethodHandler" file="SyncMethodHandler.java" line="115" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.client.sei.SyncMethodHandler" file="SyncMethodHandler.java" line="95" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.client.sei.SEIStub" file="SEIStub.java" line="136" method="invoke"/>
<ns2:frame class="$Proxy404" line="unknown" method="registerOperation"/>
<ns2:frame class="sun.reflect.NativeMethodAccessorImpl" file="NativeMethodAccessorImpl.java" line="native" method="invoke0"/>
<ns2:frame class="sun.reflect.NativeMethodAccessorImpl" file="NativeMethodAccessorImpl.java" line="39" method="invoke"/>
<ns2:frame class="sun.reflect.DelegatingMethodAccessorImpl" file="DelegatingMethodAccessorImpl.java" line="25" method="invoke"/>
<ns2:frame class="java.lang.reflect.Method" file="Method.java" line="597" method="invoke"/>
<ns2:frame class="weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler" file="ClientInstanceInvocationHandler.java" line="84" method="invoke"/>
<ns2:frame class="$Proxy387" line="unknown" method="registerOperation"/>
<ns2:frame class="weblogic.wsee.wstx.wsc.v10.client.RegistrationProxyBuilderImpl$RegistrationProxyImpl" file="RegistrationProxyBuilderImpl.java" line="65" method="asyncRegister"/>
<ns2:frame class="weblogic.wsee.wstx.wsc.v10.client.RegistrationProxyBuilderImpl$RegistrationProxyImpl" file="RegistrationProxyBuilderImpl.java" line="46" method="asyncRegister"/>
<ns2:frame class="weblogic.wsee.wstx.wsc.common.client.RegistrationProxyBuilder$RegistrationProxyF" file="RegistrationProxyBuilder.java" line="96" method="registerOperation"/>
<ns2:frame class="weblogic.wsee.wstx.wsat.tube.WSATServerHelper" file="WSATServerHelper.java" line="108" method="register"/>
<ns2:frame class="weblogic.wsee.wstx.wsat.tube.WSATServerHelper" file="WSATServerHelper.java" line="79" method="processIncomingTransaction"/>
<ns2:frame class="weblogic.wsee.wstx.wsat.tube.WSATServerHelper" file="WSATServerHelper.java" line="34" method="doHandleRequest"/>
<ns2:frame class="weblogic.wsee.wstx.wsat.tube.WSATServerTube" file="WSATServerTube.java" line="87" method="processRequest"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="866" method="__doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="815" method="_doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="778" method="doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="680" method="runSync"/>
<ns2:frame class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java" line="403" method="process"/>
<ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit" file="HttpAdapter.java" line="532" method="handle"/>
<ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java" line="253" method="handle"/>
<ns2:frame class="com.sun.xml.ws.transport.http.servlet.ServletAdapter" file="ServletAdapter.java" line="140" method="handle"/>
<ns2:frame class="weblogic.wsee.jaxws.WLSServletAdapter" file="WLSServletAdapter.java" line="171" method="handle"/>
<ns2:frame class="weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke" file="HttpServletAdapter.java" line="708" method="run"/>
<ns2:frame class="weblogic.security.acl.internal.AuthenticatedSubject" file="AuthenticatedSubject.java" line="363" method="doAs"/>
<ns2:frame class="weblogic.security.service.SecurityManager" file="SecurityManager.java" line="146" method="runAs"/>
<ns2:frame class="weblogic.wsee.util.ServerSecurityHelper" file="ServerSecurityHelper.java" line="103" method="authenticatedInvoke"/>
<ns2:frame class="weblogic.wsee.jaxws.HttpServletAdapter$3" file="HttpServletAdapter.java" line="311" method="run"/>
<ns2:frame class="weblogic.wsee.jaxws.HttpServletAdapter" file="HttpServletAdapter.java" line="336" method="post"/>
<ns2:frame class="weblogic.wsee.jaxws.JAXWSServlet" file="JAXWSServlet.java" line="95" method="doRequest"/>
<ns2:frame class="weblogic.servlet.http.AbstractAsyncServlet" file="AbstractAsyncServlet.java" line="99" method="service"/>
<ns2:frame class="javax.servlet.http.HttpServlet" file="HttpServlet.java" line="820" method="service"/>
<ns2:frame class="weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction" file="StubSecurityHelper.java" line="227" method="run"/>
<ns2:frame class="weblogic.servlet.internal.StubSecurityHelper" file="StubSecurityHelper.java" line="125" method="invokeServlet"/>
<ns2:frame class="weblogic.servlet.internal.ServletStubImpl" file="ServletStubImpl.java" line="300" method="execute"/>
<ns2:frame class="weblogic.servlet.internal.TailFilter" file="TailFilter.java" line="26" method="doFilter"/>
<ns2:frame class="weblogic.servlet.internal.FilterChainImpl" file="FilterChainImpl.java" line="56" method="doFilter"/>
<ns2:frame class="oracle.security.jps.ee.http.JpsAbsFilter$1" file="JpsAbsFilter.java" line="111" method="run"/>
<ns2:frame class="oracle.security.jps.util.JpsSubject" file="JpsSubject.java" line="313" method="doAsPrivileged"/>
<ns2:frame class="oracle.security.jps.ee.util.JpsPlatformUtil" file="JpsPlatformUtil.java" line="413" method="runJaasMode"/>
<ns2:frame class="oracle.security.jps.ee.http.JpsAbsFilter" file="JpsAbsFilter.java" line="94" method="runJaasMode"/>
<ns2:frame class="oracle.security.jps.ee.http.JpsAbsFilter" file="JpsAbsFilter.java" line="161" method="doFilter"/>
<ns2:frame class="oracle.security.jps.ee.http.JpsFilter" file="JpsFilter.java" line="71" method="doFilter"/>
<ns2:frame class="weblogic.servlet.internal.FilterChainImpl" file="FilterChainImpl.java" line="56" method="doFilter"/>
<ns2:frame class="oracle.dms.servlet.DMSServletFilter" file="DMSServletFilter.java" line="136" method="doFilter"/>
<ns2:frame class="weblogic.servlet.internal.FilterChainImpl" file="FilterChainImpl.java" line="56" method="doFilter"/>
<ns2:frame class="weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction" file="WebAppServletContext.java" line="3715" method="wrapRun"/>
<ns2:frame class="weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction" file="WebAppServletContext.java" line="3681" method="run"/>
<ns2:frame class="weblogic.security.acl.internal.AuthenticatedSubject" file="AuthenticatedSubject.java" line="321" method="doAs"/>
<ns2:frame class="weblogic.security.service.SecurityManager" file="SecurityManager.java" line="120" method="runAs"/>
<ns2:frame class="weblogic.servlet.internal.WebAppServletContext" file="WebAppServletContext.java" line="2277" method="securedExecute"/>
<ns2:frame class="weblogic.servlet.internal.WebAppServletContext" file="WebAppServletContext.java" line="2183" method="execute"/>
<ns2:frame class="weblogic.servlet.internal.ServletRequestImpl" file="ServletRequestImpl.java" line="1454" method="run"/>
<ns2:frame class="weblogic.work.ExecuteThread" file="ExecuteThread.java" line="209" method="execute"/>
<ns2:frame class="weblogic.work.ExecuteThread" file="ExecuteThread.java" line="178" method="run"/>
</ns2:stackTrace>
</ns2:exception>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms