Author: berndf
Date: Thu May 24 07:49:01 2012
New Revision: 1342165
URL: http://svn.apache.org/viewvc?rev=1342165&view=rev
Log:
VYSPER-314: support serving /crossdomain.xml when BOSH webapp is mapped to "/"
and "/foo"
Modified:
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/pom.xml
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/inttests/AllowedOriginIntegrationTest.java
Modified: mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/pom.xml
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/pom.xml?rev=1342165&r1=1342164&r2=1342165&view=diff
==============================================================================
--- mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/pom.xml (original)
+++ mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/pom.xml Thu May 24
07:49:01 2012
@@ -51,6 +51,7 @@
<!-- only needed for BoshEndpoint -->
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
+ <scope>compile</scope>
</dependency>
<!-- Test dependencies -->
Modified:
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java?rev=1342165&r1=1342164&r2=1342165&view=diff
==============================================================================
---
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java
(original)
+++
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java
Thu May 24 07:49:01 2012
@@ -84,9 +84,11 @@ public class BoshServlet extends HttpSer
this.accessControlAllowOrigin = accessControlAllowOrigin;
}
-
-
- private byte[] createFlashCrossDomainPolicy() {
+ /**
+ * crossdomain.xml is needed when flhxr is used.
+ * @return
+ */
+ protected byte[] createFlashCrossDomainPolicy() {
StringBuffer crossDomain = new StringBuffer();
crossDomain.append("<?xml version='1.0'?>");
crossDomain.append("<!DOCTYPE cross-domain-policy SYSTEM
'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'>");
@@ -104,7 +106,7 @@ public class BoshServlet extends HttpSer
}
}
- private String createAccessControlAllowOrigin() {
+ protected String createAccessControlAllowOrigin() {
StringBuffer crossDomain = new StringBuffer();
boolean first = true;
for(String domain : accessControlAllowOrigin) {
@@ -122,7 +124,8 @@ public class BoshServlet extends HttpSer
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.addDateHeader("Date", System.currentTimeMillis());
resp.addHeader("Server", SERVER_IDENTIFICATION);
- if (FLASH_CROSS_DOMAIN_POLICY_URI.equals(req.getRequestURI())){
+ if (FLASH_CROSS_DOMAIN_POLICY_URI.equals(req.getRequestURI() /*mapped
to '/'*/ ) ||
+ FLASH_CROSS_DOMAIN_POLICY_URI.equals(req.getPathInfo()) /*mapped
to '/foo' */) {
if(accessControlAllowOrigin != null) {
resp.setContentType(XML_CONTENT_TYPE);
byte[] flashCrossDomainPolicy = createFlashCrossDomainPolicy();
@@ -182,7 +185,7 @@ public class BoshServlet extends HttpSer
resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, INFO_GET);
}
- private void writeResponse(HttpServletResponse resp, BoshResponse
respData) throws IOException {
+ protected void writeResponse(HttpServletResponse resp, BoshResponse
respData) throws IOException {
resp.addDateHeader("Date", System.currentTimeMillis());
resp.addHeader("Server", SERVER_IDENTIFICATION);
resp.setContentType(respData.getContentType());
Modified:
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/inttests/AllowedOriginIntegrationTest.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/inttests/AllowedOriginIntegrationTest.java?rev=1342165&r1=1342164&r2=1342165&view=diff
==============================================================================
---
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/inttests/AllowedOriginIntegrationTest.java
(original)
+++
mina/vysper/trunk/server/extensions/xep0124-xep0206-bosh/src/test/java/org/apache/vysper/xmpp/extension/xep0124/inttests/AllowedOriginIntegrationTest.java
Thu May 24 07:49:01 2012
@@ -40,6 +40,7 @@ import org.junit.Test;
public class AllowedOriginIntegrationTest extends IntegrationTestTemplate {
+ @Override
protected BoshEndpoint processBoshEndpoint(BoshEndpoint endpoint) {
List<String> allowedDomains = new ArrayList<String>();
allowedDomains.add("example.com");