Author: jalkanen
Date: Thu Dec 4 00:53:22 2008
New Revision: 723247
URL: http://svn.apache.org/viewvc?rev=723247&view=rev
Log:
[JSPWIKI-291] Added patch from Thomas Engelschmidt to replace ORO
regexp library with Java built-in regexps for DenouncePlugin, as well
as DenouncePluginTest.
Modified:
incubator/jspwiki/trunk/ChangeLog
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/Denounce.java
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/denounce.properties
incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
Modified: incubator/jspwiki/trunk/ChangeLog
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=723247&r1=723246&r2=723247&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Thu Dec 4 00:53:22 2008
@@ -5,6 +5,10 @@
* Moved WikiException & PluginException to the org.apache.jspwiki.api
package. This is a part of the overall transition to have a stable
API.
+ * [JSPWIKI-291] Added patch from Thomas Engelschmidt to replace ORO
+ regexp library with Java built-in regexps for DenouncePlugin, as well
+ as DenouncePluginTest. Thanks!
+
2008-12-02 Andrew Jaquith <ajaquith AT apache DOT org>
* 3.0.0-svn-21
Modified: incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/Denounce.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/Denounce.java?rev=723247&r1=723246&r2=723247&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/Denounce.java
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/Denounce.java Thu Dec
4 00:53:22 2008
@@ -25,12 +25,12 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
import javax.servlet.http.HttpServletRequest;
import org.apache.jspwiki.api.PluginException;
-import org.apache.oro.text.GlobCompiler;
-import org.apache.oro.text.regex.*;
import com.ecyrd.jspwiki.WikiContext;
import com.ecyrd.jspwiki.log.Logger;
@@ -78,7 +78,6 @@
{
try
{
- PatternCompiler compiler = new GlobCompiler();
ClassLoader loader = Denounce.class.getClassLoader();
InputStream in = loader.getResourceAsStream( PROPERTYFILE );
@@ -101,18 +100,18 @@
{
if( name.startsWith( PROP_REFERERPATTERN ) )
{
- c_refererPatterns.add( compiler.compile(
props.getProperty(name) ) );
+ c_refererPatterns.add( Pattern.compile(
props.getProperty(name) ) );
}
else if( name.startsWith( PROP_AGENTPATTERN ) )
{
- c_agentPatterns.add( compiler.compile(
props.getProperty(name) ) );
+ c_agentPatterns.add( Pattern.compile(
props.getProperty(name) ) );
}
else if( name.startsWith( PROP_HOSTPATTERN ) )
{
- c_hostPatterns.add( compiler.compile(
props.getProperty(name) ) );
+ c_hostPatterns.add( Pattern.compile(
props.getProperty(name) ) );
}
}
- catch( MalformedPatternException ex )
+ catch(PatternSyntaxException ex )
{
log.error( "Malformed URL pattern in "+PROPERTYFILE+":
"+props.getProperty(name), ex );
}
@@ -168,11 +167,10 @@
*/
private boolean matchPattern( List list, String path )
{
- PatternMatcher matcher = new Perl5Matcher();
-
for( Iterator i = list.iterator(); i.hasNext(); )
{
- if( matcher.matches( path, (Pattern)i.next() ) )
+ Pattern pattern = (Pattern)i.next();
+ if (pattern.matcher(path).find())
{
return true;
}
Modified:
incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/denounce.properties
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/denounce.properties?rev=723247&r1=723246&r2=723247&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/denounce.properties
(original)
+++ incubator/jspwiki/trunk/src/com/ecyrd/jspwiki/plugin/denounce.properties
Thu Dec 4 00:53:22 2008
@@ -8,13 +8,13 @@
#
# Which user agents should be denounced.
-#
-denounce.agentpattern.googlebot = *Googlebot*
-denounce.agentpattern.inktomi = *Slurp/*
-denounce.agentpattern.fastsearch = *FAST-WebCrawler/*
-denounce.agentpattern.voila = *VoilaBot*
-denounce.agentpattern.ms = *MicrosoftPrototypeCrawler*
-denounce.agentpattern.grub = *grub-client*
+# Uses java.util.regex.Pattern for matching
+denounce.agentpattern.googlebot = .*Googlebot.*
+denounce.agentpattern.inktomi = .*Slurp/.*
+denounce.agentpattern.fastsearch = .*FAST-WebCrawler/.*
+denounce.agentpattern.voila = .*VoilaBot.*
+denounce.agentpattern.ms = .*MicrosoftPrototypeCrawler.*
+denounce.agentpattern.grub = .*grub-client.*
#
# Which referers should be denounced.
#
@@ -25,6 +25,6 @@
# of ServletRequest.getRemoteHost(), which may return an IP address as
# well, if the name cannot be determined.
#
-denounce.hostpattern.googlebot = *.googlebot.com
-denounce.hostpattern.inktomi = *.inktomisearch.com
-denounce.hostpattern.alexa = crawl*.alexa.com
+denounce.hostpattern.googlebot = .*googlebot\\.com
+denounce.hostpattern.inktomi = .*inktomisearch\\.com
+denounce.hostpattern.alexa = crawl\\.*\\.alexa\\.com
Modified: incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
URL:
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java?rev=723247&r1=723246&r2=723247&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java
(original)
+++ incubator/jspwiki/trunk/tests/com/ecyrd/jspwiki/plugin/AllTests.java Thu
Dec 4 00:53:22 2008
@@ -25,6 +25,7 @@
suite.addTest( ReferringPagesPluginTest.suite() );
suite.addTest( TableOfContentsTest.suite() );
suite.addTest( UndefinedPagesPluginTest.suite() );
+ suite.addTest(DenouncePluginTest.suite());
return suite;
}