Author: oching
Date: Sat Mar 14 06:43:22 2009
New Revision: 753608

URL: http://svn.apache.org/viewvc?rev=753608&view=rev
Log:
[MRM-1135]
o escape blacklist and whitelist pattern with '\'

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java?rev=753608&r1=753607&r2=753608&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java
 Sat Mar 14 06:43:22 2009
@@ -109,6 +109,39 @@
      */
     protected ProxyConnectorConfiguration connector;
 
+    protected List<String> escapePatterns( List<String> patterns )
+    {   
+        List<String> escapedPatterns = new ArrayList<String>();
+        if( patterns != null )
+        {
+            for( String pattern : patterns )
+            {
+                escapedPatterns.add( StringUtils.replace( pattern, "\\", 
"\\\\" ) );
+            }
+        }
+        
+        return escapedPatterns;
+    }
+    
+    protected List<String> unescapePatterns( List<String> patterns )
+    {
+        List<String> rawPatterns = new ArrayList<String>();
+        if( patterns != null )
+        {
+            for( String pattern : patterns )
+            {
+                rawPatterns.add( StringUtils.replace( pattern, "\\\\", "\\" ) 
);
+            }
+        }
+        
+        return rawPatterns;
+    }
+    
+    private String escapePattern( String pattern )
+    {
+        return StringUtils.replace( pattern, "\\", "\\\\" );
+    }
+        
     public String addBlackListPattern()
     {
         String pattern = getBlackListPattern();
@@ -117,13 +150,13 @@
         {
             addActionError( "Cannot add a blank black list pattern." );
         }
-
+        
         if ( !hasActionErrors() )
         {
-            getConnector().getBlackListPatterns().add( pattern );
+            getConnector().getBlackListPatterns().add( escapePattern( pattern 
) );
             setBlackListPattern( null );
         }
-
+        
         return INPUT;
     }
 
@@ -163,10 +196,10 @@
 
         if ( !hasActionErrors() )
         {
-            getConnector().getWhiteListPatterns().add( pattern );
+            getConnector().getWhiteListPatterns().add( escapePattern( pattern 
) );
             setWhiteListPattern( null );
         }
-
+        
         return INPUT;
     }
 
@@ -231,20 +264,21 @@
     public String removeBlackListPattern()
     {
         String pattern = getPattern();
-
+        
         if ( StringUtils.isBlank( pattern ) )
         {
             addActionError( "Cannot remove a blank black list pattern." );
         }
 
-        if ( !getConnector().getBlackListPatterns().contains( pattern ) )
+        if ( !getConnector().getBlackListPatterns().contains( pattern ) && 
+            !getConnector().getBlackListPatterns().contains( 
StringUtils.replace( pattern, "\\", "\\\\" ) ) )
         {
             addActionError( "Non-existant black list pattern [" + pattern + 
"], no black list pattern removed." );
         }
 
         if ( !hasActionErrors() )
         {
-            getConnector().getBlackListPatterns().remove( pattern );
+            getConnector().getBlackListPatterns().remove( escapePattern( 
pattern ) );
         }
 
         setBlackListPattern( null );
@@ -287,14 +321,15 @@
             addActionError( "Cannot remove a blank white list pattern." );
         }
 
-        if ( !getConnector().getWhiteListPatterns().contains( pattern ) )
+        if ( !getConnector().getWhiteListPatterns().contains( pattern ) &&
+                !getConnector().getWhiteListPatterns().contains( 
StringUtils.replace( pattern, "\\", "\\\\" ) ) )
         {
             addActionError( "Non-existant white list pattern [" + pattern + 
"], no white list pattern removed." );
         }
 
         if ( !hasActionErrors() )
         {
-            getConnector().getWhiteListPatterns().remove( pattern );
+            getConnector().getWhiteListPatterns().remove( escapePattern( 
pattern ) );
         }
 
         setWhiteListPattern( null );

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java?rev=753608&r1=753607&r2=753608&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java
 Sat Mar 14 06:43:22 2009
@@ -42,6 +42,13 @@
     @Override
     public String input()
     {
+        if( connector != null )
+        {
+         // MRM-1135
+            connector.setBlackListPatterns( escapePatterns( 
connector.getBlackListPatterns() ) );
+            connector.setWhiteListPatterns( escapePatterns( 
connector.getWhiteListPatterns() ) );
+        }
+        
         return INPUT;
     }
 
@@ -75,6 +82,10 @@
             connector.setProxyId( null );
         }
 
+        // MRM-1135
+        connector.setBlackListPatterns( unescapePatterns( 
connector.getBlackListPatterns() ) );
+        connector.setWhiteListPatterns( unescapePatterns( 
connector.getWhiteListPatterns() ) );
+        
         addProxyConnector( connector );
         return saveConfiguration();
     }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java?rev=753608&r1=753607&r2=753608&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java
 Sat Mar 14 06:43:22 2009
@@ -47,7 +47,7 @@
     {
         super.prepare();
 
-        connector = findProxyConnector( source, target );
+        connector = findProxyConnector( source, target );        
     }
 
     public String input()
@@ -58,6 +58,13 @@
                 + target + "]" );
             return ERROR;
         }
+        
+        if( connector != null )
+        {
+         // MRM-1135
+            connector.setBlackListPatterns( escapePatterns( 
connector.getBlackListPatterns() ) );
+            connector.setWhiteListPatterns( escapePatterns( 
connector.getWhiteListPatterns() ) );
+        }
 
         return INPUT;
     }
@@ -86,6 +93,10 @@
             return INPUT;
         }
 
+        // MRM-1135
+        connector.setBlackListPatterns( unescapePatterns( 
connector.getBlackListPatterns() ) );
+        connector.setWhiteListPatterns( unescapePatterns( 
connector.getWhiteListPatterns() ) );
+        
         addProxyConnector( connector );
         return saveConfiguration();
     }


Reply via email to