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");


Reply via email to