You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/07/18 18:03:35 UTC

svn commit: r557308 - /lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java

Author: andreas
Date: Wed Jul 18 09:03:34 2007
New Revision: 557308

URL: http://svn.apache.org/viewvc?view=rev&rev=557308
Log:
Normalize link URLs when rewriting them. This avoids problems with policy resolving.

Modified:
    lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java

Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java?view=diff&rev=557308&r1=557307&r2=557308
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java Wed Jul 18 09:03:34 2007
@@ -17,6 +17,7 @@
  */
 package org.apache.lenya.cms.linking;
 
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -113,32 +114,34 @@
         return url.startsWith("/");
     }
 
-    public String rewrite(String url) {
+    public String rewrite(final String url) {
+        
         String rewrittenUrl = "";
 
         try {
+            final String normalizedUrl = new URI(url).normalize().toString();
             if (this.relativeUrls) {
-                rewrittenUrl = getRelativeUrlTo(url);
+                rewrittenUrl = getRelativeUrlTo(normalizedUrl);
             } else {
                 boolean useSsl = this.ssl;
                 if (!useSsl && this.policyManager != null) {
-                    Policy policy = this.policyManager.getPolicy(this.accreditableManager, url);
+                    Policy policy = this.policyManager.getPolicy(this.accreditableManager, normalizedUrl);
                     useSsl = policy.isSSLProtected();
                 }
 
-                URLInformation info = new URLInformation(url);
+                URLInformation info = new URLInformation(normalizedUrl);
                 String pubId = info.getPublicationId();
 
                 // link points to publication
                 if (pubId != null && isPublication(pubId)) {
                     Publication pub = this.factory.getPublication(pubId);
-                    rewrittenUrl = rewriteLink(url, pub, useSsl);
+                    rewrittenUrl = rewriteLink(normalizedUrl, pub, useSsl);
                 }
 
                 // link doesn't point to publication
                 else {
                     Proxy proxy = getGlobalProxies().getProxy(ssl);
-                    rewrittenUrl = proxy.getUrl() + url;
+                    rewrittenUrl = proxy.getUrl() + normalizedUrl;
                 }
             }
         } catch (Exception e) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org