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


Reply via email to