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();
}