JSPWIKI-120: PageFilters use Engine instead of WikiEngine on initialize method.
Also, moved methods from BasicPageFilter to PageFilter as default methods where appropiate
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/api/filters/BasicPageFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/api/filters/BasicPageFilter.java
index 1234000..1462067 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/api/filters/BasicPageFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/api/filters/BasicPageFilter.java
@@ -18,73 +18,28 @@
*/
package org.apache.wiki.api.filters;
-import java.util.Properties;
-
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.FilterException;
+import java.util.Properties;
+
+
/**
- * Provides a base implementation of a PageFilter. None of the callbacks
- * do anything, so it is a good idea for you to extend from this class
- * and implement only methods that you need.
- *
+ * Provides a base implementation of a PageFilter. None of the callbacks do anything, so it is a good idea for you to extend from this
+ * class and implement only methods that you need.
*/
-public class BasicPageFilter
- implements PageFilter
-{
- protected WikiEngine m_engine;
-
+public class BasicPageFilter implements PageFilter {
+
+ protected Engine m_engine;
+
/**
- * If you override this, you should call super.initialize() first.
- *
- * {@inheritDoc}
+ * If you override this, you should call super.initialize() first.
+ *
+ * {@inheritDoc}
*/
- public void initialize( WikiEngine engine, Properties properties )
- throws FilterException
- {
+ @Override
+ public void initialize( final Engine engine, final Properties properties ) throws FilterException {
m_engine = engine;
}
- /**
- * {@inheritDoc}
- */
- public String preTranslate( WikiContext wikiContext, String content )
- throws FilterException
- {
- return content;
- }
-
- /**
- * {@inheritDoc}
- */
- public String postTranslate( WikiContext wikiContext, String htmlContent )
- throws FilterException
- {
- return htmlContent;
- }
-
- /**
- * {@inheritDoc}
- */
- public String preSave( WikiContext wikiContext, String content )
- throws FilterException
- {
- return content;
- }
-
- /**
- * {@inheritDoc}
- */
- public void postSave( WikiContext wikiContext, String content )
- throws FilterException
- {
- }
-
- /**
- * {@inheritDoc}
- */
- public void destroy( WikiEngine engine )
- {
- }
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/api/filters/PageFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/api/filters/PageFilter.java
index 3354240..26d9008 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/api/filters/PageFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/api/filters/PageFilter.java
@@ -18,72 +18,62 @@
*/
package org.apache.wiki.api.filters;
-import java.util.Properties;
-
import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.FilterException;
+import java.util.Properties;
+
+
/**
- * Provides a definition for a page filter. A page filter is a class
- * that can be used to transform the WikiPage content being saved or
+ * Provides a definition for a page filter. A page filter is a class that can be used to transform the WikiPage content being saved or
* being loaded at any given time.
* <p>
- * Note that the WikiContext.getPage() method always returns the context
- * in which text is rendered, i.e. the original request. Thus the content
- * may actually be different content than what what the wikiContext.getPage()
- * implies! This happens often if you are for example including multiple
- * pages on the same page.
+ * Note that the WikiContext.getPage() method always returns the context in which text is rendered, i.e. the original request. Thus the
+ * content may actually be different content than what what the wikiContext.getPage() implies! This happens often if you are for example
+ * including multiple pages on the same page.
* <p>
- * PageFilters must be thread-safe! There is only one instance of each PageFilter
- * per each WikiEngine invocation. If you need to store data persistently, use
- * VariableManager, or WikiContext.
+ * PageFilters must be thread-safe! There is only one instance of each PageFilter per each Engine invocation. If you need to store data
+ * persistently, use VariableManager, or WikiContext.
* <p>
- * As of 2.5.30, initialize() gains access to the WikiEngine.
- *
+ * As of 2.5.30, initialize() gains access to the Engine.
*/
-public interface PageFilter
-{
+public interface PageFilter {
+
/**
- * Is called whenever the a new PageFilter is instantiated and
- * reset.
+ * Is called whenever the a new PageFilter is instantiated and reset.
*
* @param engine The WikiEngine whic owns this PageFilter
* @param properties The properties ripped from filters.xml.
- * @throws FilterException If the filter could not be initialized. If this is thrown,
- * the filter is not added to the internal queues.
+ * @throws FilterException If the filter could not be initialized. If this is thrown, the filter is not added to the internal queues.
*/
- void initialize( WikiEngine engine, Properties properties )
- throws FilterException;
+ void initialize( Engine engine, Properties properties ) throws FilterException;
/**
- * This method is called whenever a page has been loaded from the provider,
- * but not yet been sent through the markup-translation process. Note that you cannot
- * do HTML translation here, because it will be escaped.
+ * This method is called whenever a page has been loaded from the provider, but not yet been sent through the markup-translation
+ * process. Note that you cannot do HTML translation here, because it will be escaped.
*
* @param wikiContext The current wikicontext.
- * @param content WikiMarkup.
+ * @param content WikiMarkup.
* @return The modified wikimarkup content.
- * @throws FilterException If something goes wrong. Throwing this causes the entire page
- * processing to be abandoned.
+ * @throws FilterException If something goes wrong. Throwing this causes the entire page processing to be abandoned.
*/
- String preTranslate( WikiContext wikiContext, String content )
- throws FilterException;
+ default String preTranslate( final WikiContext wikiContext, final String content ) throws FilterException {
+ return content;
+ }
/**
- * This method is called after a page has been fed through the translation process,
- * so anything you are seeing here is translated content. If you want to
- * do any of your own WikiMarkup2HTML translation, do it here.
+ * This method is called after a page has been fed through the translation process, so anything you are seeing here is translated
+ * content. If you want to do any of your own WikiMarkup2HTML translation, do it here.
*
* @param wikiContext The WikiContext.
* @param htmlContent The translated HTML
* @return The modified HTML
- *
- * @throws FilterException If something goes wrong. Throwing this causes the entire page
- * processing to be abandoned.
+ * @throws FilterException If something goes wrong. Throwing this causes the entire page processing to be abandoned.
*/
- String postTranslate( WikiContext wikiContext, String htmlContent )
- throws FilterException;
+ default String postTranslate( final WikiContext wikiContext, final String htmlContent ) throws FilterException {
+ return htmlContent;
+ }
/**
* This method is called before the page has been saved to the PageProvider.
@@ -91,35 +81,31 @@
* @param wikiContext The WikiContext
* @param content The wikimarkup that the user just wanted to save.
* @return The modified wikimarkup
- * @throws FilterException If something goes wrong. Throwing this causes the entire page
- * processing to be abandoned.
+ * @throws FilterException If something goes wrong. Throwing this causes the entire page processing to be abandoned.
*/
- String preSave( WikiContext wikiContext, String content )
- throws FilterException;
+ default String preSave( final WikiContext wikiContext, final String content ) throws FilterException {
+ return content;
+ }
/**
- * This method is called after the page has been successfully saved.
- * If the saving fails for any reason, then this method will not
+ * This method is called after the page has been successfully saved. If the saving fails for any reason, then this method will not
* be called.
* <p>
- * Since the result is discarded from this method, this is only useful
- * for things like counters, etc.
+ * Since the result is discarded from this method, this is only useful for things like counters, etc.
*
* @param wikiContext The WikiContext
* @param content The content which was just stored.
- * @throws FilterException If something goes wrong. As the page is already saved,
- * This is just logged.
+ * @throws FilterException If something goes wrong. As the page is already saved, This is just logged.
*/
- void postSave( WikiContext wikiContext, String content )
- throws FilterException;
+ default void postSave( final WikiContext wikiContext, final String content ) throws FilterException {}
/**
* Called for every filter, e.g. on wiki engine shutdown. Use this if you have to
* clean up or close global resources you allocated in the initialize() method.
*
- * @param engine The WikiEngine which owns this filter.
+ * @param engine The Engine which owns this filter.
* @since 2.5.36
*/
- void destroy( WikiEngine engine );
+ default void destroy( final Engine engine ) {}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/CreoleFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/CreoleFilter.java
index 9e8fab4..43b678f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/CreoleFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/CreoleFilter.java
@@ -20,7 +20,7 @@
import org.apache.log4j.Logger;
import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
+import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.FilterException;
import org.apache.wiki.api.filters.BasicPageFilter;
import org.apache.wiki.parser.CreoleToJSPWikiTranslator;
@@ -28,26 +28,19 @@
import java.util.Properties;
/**
- * <p>Provides the Implementation for mixed mode creole: If you activate
- * this filter, it will translate all markup that was saved as creole
- * markup to JSPWiki markup. Therefore the files will be saved
- * with mixed markup.
+ * <p>Provides the Implementation for mixed mode creole: If you activate this filter, it will translate all markup that was saved as creole
+ * markup to JSPWiki markup. Therefore the files will be saved with mixed markup.
* <p>
- * <b>WARNING</b>: There's no turning back after installing this
- * filter. Since your wiki pages are saved in Creole markup you can
+ * <b>WARNING</b>: There's no turning back after installing this filter. Since your wiki pages are saved in Creole markup you can
* not deactivate it afterwards.
* <p>
- * <b>WARNING</b>: This feature is completely experimental, and is known to be
- * broken. Use at your own risk.
+ * <b>WARNING</b>: This feature is completely experimental, and is known to be broken. Use at your own risk.
* <p>
- * <b>WARNING</b>: The CreoleFilter feature is deprecated. JSPWiki is likely
- * to implement a non-mixed mode Creole at some point, since turning on
- * Creole will make new pages obsolete.
- *
- *
+ * <b>WARNING</b>: The CreoleFilter feature is deprecated. JSPWiki is likely to implement a non-mixed mode Creole at some point, since
+ * turning on Creole will make new pages obsolete.
+ *
* @see <a href="http://www.wikicreole.org/wiki/MixedMode">[[WikiCreole:MixedMode]]</a>
*/
-
public class CreoleFilter extends BasicPageFilter {
private static final Logger log = Logger.getLogger(CreoleFilter.class);
@@ -55,18 +48,19 @@
/**
* {@inheritDoc}
*/
- public void initialize(WikiEngine engine, Properties props) throws FilterException {
+ @Override public void initialize( final Engine engine, final Properties props ) throws FilterException {
}
/**
* {@inheritDoc}
*/
- public String preSave( WikiContext wikiContext, String content ) {
+ @Override
+ public String preSave( final WikiContext wikiContext, final String content ) {
try {
- String username=wikiContext.getCurrentUser().getName();
- Properties prop = wikiContext.getEngine().getWikiProperties();
+ final String username = wikiContext.getCurrentUser().getName();
+ final Properties prop = wikiContext.getEngine().getWikiProperties();
return new CreoleToJSPWikiTranslator().translateSignature(prop, content,username);
- } catch(Exception e ) {
+ } catch( final Exception e ) {
log.error( e.getMessage(), e );
return e.getMessage();
}
@@ -75,11 +69,12 @@
/**
* {@inheritDoc}
*/
- public String preTranslate(WikiContext wikiContext, String content) {
+ @Override
+ public String preTranslate( final WikiContext wikiContext, final String content ) {
try {
- Properties prop = wikiContext.getEngine().getWikiProperties();
+ final Properties prop = wikiContext.getEngine().getWikiProperties();
return new CreoleToJSPWikiTranslator().translate(prop ,content);
- } catch (Exception e) {
+ } catch( final Exception e ) {
log.error( e.getMessage(), e );
return content
+ "\n \n %%error \n"
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
index 6e1bfe6..fbfdeb9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
@@ -20,7 +20,6 @@
import org.apache.log4j.Logger;
import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.filters.BasicPageFilter;
import org.apache.xmlrpc.AsyncCallback;
@@ -53,14 +52,16 @@
/**
* {@inheritDoc}
*/
- @Override public void initialize( final WikiEngine engine, final Properties props ) {
+ @Override
+ public void initialize( final Engine engine, final Properties props ) {
m_pingURL = props.getProperty( PROP_PINGURL, "http://rpc.weblogs.com/RPC2" );
}
/**
* {@inheritDoc}
*/
- @Override public void postSave( final WikiContext context, final String pagecontent ) {
+ @Override
+ public void postSave( final WikiContext context, final String pagecontent ) {
String blogName = context.getPage().getName();
final Engine engine = context.getEngine();
@@ -87,22 +88,24 @@
xmlrpc.executeAsync("weblogUpdates.ping", params,
new AsyncCallback() {
- @Override public void handleError( final Exception ex, final URL url, final String method ) {
+ @Override
+ public void handleError( final Exception ex, final URL url, final String method ) {
log.error( "Unable to execute weblogs.com ping to URL: " + url.toString(), ex );
}
- @Override public void handleResult( final Object result, final URL url, final String method ) {
+ @Override
+ public void handleResult( final Object result, final URL url, final String method ) {
@SuppressWarnings("unchecked")
final Hashtable< String, Object > res = (Hashtable < String, Object > ) result;
- final Boolean flerror = (Boolean)res.get("flerror");
- final String msg = (String)res.get("message");
+ final Boolean flerror = ( Boolean )res.get( "flerror" );
+ final String msg = ( String )res.get( "message" );
if( flerror ) {
- log.error("Failed to ping: "+msg);
+ log.error( "Failed to ping: " + msg );
}
- log.info("Weblogs.com has been pinged.");
+ log.info( "Weblogs.com has been pinged." );
}
}
);
@@ -110,4 +113,5 @@
log.error("Malformed URL",e);
}
}
+
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
index 0175d6c..109eb6f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
@@ -30,7 +30,6 @@
import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.wiki.InternalWikiException;
import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
import org.apache.wiki.WikiPage;
import org.apache.wiki.WikiProvider;
import org.apache.wiki.api.core.Engine;
@@ -250,26 +249,20 @@
* {@inheritDoc}
*/
@Override
- public void initialize( final WikiEngine engine, final Properties properties ) {
+ public void initialize( final Engine engine, final Properties properties ) {
m_forbiddenWordsPage = properties.getProperty( PROP_WORDLIST, m_forbiddenWordsPage );
m_forbiddenIPsPage = properties.getProperty( PROP_IPLIST, m_forbiddenIPsPage);
m_pageNameMaxLength = properties.getProperty( PROP_MAX_PAGENAME_LENGTH, m_pageNameMaxLength);
m_errorPage = properties.getProperty( PROP_ERRORPAGE, m_errorPage );
- m_limitSinglePageChanges = TextUtil.getIntegerProperty( properties,
- PROP_PAGECHANGES,
- m_limitSinglePageChanges );
+ m_limitSinglePageChanges = TextUtil.getIntegerProperty( properties, PROP_PAGECHANGES, m_limitSinglePageChanges );
- m_limitSimilarChanges = TextUtil.getIntegerProperty( properties,
- PROP_SIMILARCHANGES,
- m_limitSimilarChanges );
+ m_limitSimilarChanges = TextUtil.getIntegerProperty( properties, PROP_SIMILARCHANGES, m_limitSimilarChanges );
m_maxUrls = TextUtil.getIntegerProperty( properties, PROP_MAXURLS, m_maxUrls );
m_banTime = TextUtil.getIntegerProperty( properties, PROP_BANTIME, m_banTime );
m_blacklist = properties.getProperty( PROP_BLACKLIST, m_blacklist );
- m_ignoreAuthenticated = TextUtil.getBooleanProperty( properties,
- PROP_IGNORE_AUTHENTICATED,
- m_ignoreAuthenticated );
+ m_ignoreAuthenticated = TextUtil.getBooleanProperty( properties, PROP_IGNORE_AUTHENTICATED, m_ignoreAuthenticated );
m_useCaptcha = properties.getProperty( PROP_CAPTCHA, "" ).equals("asirra");
@@ -280,18 +273,11 @@
throw new InternalWikiException( "Faulty pattern." , e);
}
- m_akismetAPIKey = TextUtil.getStringProperty( properties,
- PROP_AKISMET_API_KEY,
- m_akismetAPIKey );
-
- m_stopAtFirstMatch = TextUtil.getStringProperty( properties,
- PROP_FILTERSTRATEGY,
- STRATEGY_EAGER ).equals( STRATEGY_EAGER );
+ m_akismetAPIKey = TextUtil.getStringProperty( properties, PROP_AKISMET_API_KEY, m_akismetAPIKey );
+ m_stopAtFirstMatch = TextUtil.getStringProperty( properties, PROP_FILTERSTRATEGY, STRATEGY_EAGER ).equals( STRATEGY_EAGER );
log.info( "# Spam filter initialized. Temporary ban time " + m_banTime +
" mins, max page changes/minute: " + m_limitSinglePageChanges );
-
-
}
private static final int REJECT = 0;
@@ -327,7 +313,8 @@
}
/** {@inheritDoc} */
- @Override public String preSave( final WikiContext context, final String content ) throws RedirectException {
+ @Override
+ public String preSave( final WikiContext context, final String content ) throws RedirectException {
cleanBanList();
refreshBlacklists( context );
final Change change = getChange( context, content );
@@ -473,35 +460,25 @@
for( final Iterator< Host > i = m_lastModifications.iterator(); i.hasNext(); ) {
final Host host = i.next();
- //
// Check if this item is invalid
- //
if( host.getAddedTime() < time ) {
log.debug( "Removed host " + host.getAddress() + " from modification queue (expired)" );
i.remove();
continue;
}
- //
// Check if this IP address has been seen before
- //
-
if( host.getAddress().equals( addr ) ) {
hostCounter++;
}
- //
// Check, if this change has been seen before
- //
-
if( host.getChange() != null && host.getChange().equals( change ) ) {
changeCounter++;
}
}
- //
// Now, let's check against the limits.
- //
if( hostCounter >= m_limitSinglePageChanges ) {
final Host host = new Host( addr, null );
m_temporaryBanList.add( host );
@@ -520,11 +497,9 @@
checkStrategy( context, REASON_SIMILAR_MODIFICATIONS, "Herb says you look like a spammer, and I trust Herb! (Incident code "+uid+")");
}
- //
// Calculate the number of links in the addition.
- //
String tstChange = change.toString();
- int urlCounter = 0;
+ int urlCounter = 0;
while( m_matcher.contains( tstChange,m_urlPattern ) ) {
final MatchResult m = m_matcher.getMatch();
tstChange = tstChange.substring( m.endOffset(0) );
@@ -540,20 +515,13 @@
checkStrategy( context, REASON_TOO_MANY_URLS, "Herb says you look like a spammer, and I trust Herb! (Incident code " + uid + ")" );
}
- //
// Check bot trap
- //
checkBotTrap( context, change );
- //
// Check UTF-8 mangling
- //
checkUTF8( context, change );
- //
- // Do Akismet check. This is good to be the last, because this is the most
- // expensive operation.
- //
+ // Do Akismet check. This is good to be the last, because this is the most expensive operation.
checkAkismet( context, change );
m_lastModifications.add( new Host( addr, change ) );
@@ -583,10 +551,7 @@
final HttpServletRequest req = context.getHttpRequest();
- //
- // Akismet will mark all empty statements as spam, so we'll just
- // ignore them.
- //
+ // Akismet will mark all empty statements as spam, so we'll just ignore them.
if( change.m_adds == 0 && change.m_removals > 0 ) {
return;
}
@@ -607,15 +572,15 @@
final String commentAuthorURL = null;
final boolean isSpam = m_akismet.commentCheck( ipAddress,
- userAgent,
- referrer,
- permalink,
- commentType,
- commentAuthor,
- commentAuthorEmail,
- commentAuthorURL,
- change.toString(),
- null );
+ userAgent,
+ referrer,
+ permalink,
+ commentType,
+ commentAuthor,
+ commentAuthorEmail,
+ commentAuthorURL,
+ change.toString(),
+ null );
sw.stop();
log.debug( "Akismet request done in: " + sw );
@@ -650,7 +615,6 @@
*/
private void checkBotTrap( final WikiContext context, final Change change ) throws RedirectException {
final HttpServletRequest request = context.getHttpRequest();
-
if( request != null ) {
final String unspam = request.getParameter( getBotFieldName() );
if( unspam != null && unspam.length() > 0 ) {
@@ -664,10 +628,8 @@
private void checkUTF8( final WikiContext context, final Change change ) throws RedirectException {
final HttpServletRequest request = context.getHttpRequest();
-
if( request != null ) {
final String utf8field = request.getParameter( "encodingcheck" );
-
if( utf8field != null && !utf8field.equals( "\u3041" ) ) {
final String uid = log( context, REJECT, REASON_UTF8_TRAP, change.toString() );
@@ -680,7 +642,6 @@
/** Goes through the ban list and cleans away any host which has expired from it. */
private synchronized void cleanBanList() {
final long now = System.currentTimeMillis();
-
for( final Iterator< Host > i = m_temporaryBanList.iterator(); i.hasNext(); ) {
final Host host = i.next();
@@ -723,12 +684,9 @@
*/
private void refreshBlacklists( final WikiContext context ) {
try {
-
boolean rebuild = false;
- //
// Rebuild, if the spam words page, the attachment or the IP ban page has changed since.
- //
final WikiPage sourceSpam = context.getEngine().getManager( PageManager.class ).getPage( m_forbiddenWordsPage );
if( sourceSpam != null ) {
if( m_spamPatterns == null || m_spamPatterns.isEmpty() || sourceSpam.getLastModified().after( m_lastRebuild ) ) {
@@ -750,10 +708,7 @@
}
}
- //
- // Do the actual rebuilding. For simplicity's sake, we always rebuild the complete
- // filter list regardless of what changed.
- //
+ // Do the actual rebuilding. For simplicity's sake, we always rebuild the complete filter list regardless of what changed.
if( rebuild ) {
m_lastRebuild = new Date();
m_spamPatterns = parseWordList( sourceSpam, ( sourceSpam != null ) ? sourceSpam.getAttribute( LISTVAR ) : null );
@@ -788,10 +743,7 @@
* @throws RedirectException
*/
private void checkPatternList( final WikiContext context, final String content, final Change change ) throws RedirectException {
- //
- // If we have no spam patterns defined, or we're trying to save
- // the page containing the patterns, just return.
- //
+ // If we have no spam patterns defined, or we're trying to save the page containing the patterns, just return.
if( m_spamPatterns == null || context.getPage().getName().equals( m_forbiddenWordsPage ) ) {
return;
}
@@ -805,9 +757,7 @@
// log.debug("Attempting to match page contents with "+p.getPattern());
if( m_matcher.contains( ch, p ) ) {
- //
// Spam filter has a match.
- //
final String uid = log( context, REJECT, REASON_REGEXP + "(" + p.getPattern() + ")", ch );
log.info( "SPAM:Regexp (" + uid + "). Content matches the spam filter '" + p.getPattern() + "'" );
@@ -824,10 +774,7 @@
* @throws RedirectException
*/
private void checkIPList( final WikiContext context ) throws RedirectException {
- //
- // If we have no IP patterns defined, or we're trying to save
- // the page containing the IP patterns, just return.
- //
+ // If we have no IP patterns defined, or we're trying to save the page containing the IP patterns, just return.
if( m_IPPatterns == null || context.getPage().getName().equals( m_forbiddenIPsPage ) ) {
return;
}
@@ -900,19 +847,14 @@
log.error( "Diff failed", e );
}
- //
// Don't forget to include the change note, too
- //
final String changeNote = page.getAttribute( WikiPage.CHANGENOTE );
-
if( changeNote != null ) {
change.append( "\r\n" );
change.append( changeNote );
}
- //
// And author as well
- //
if( page.getAuthor() != null ) {
change.append( "\r\n" + page.getAuthor() );
}
@@ -951,7 +893,6 @@
private static String getUniqueID() {
final StringBuilder sb = new StringBuilder();
final Random rand = new Random();
-
for( int i = 0; i < 6; i++ ) {
final char x = ( char )( 'A' + rand.nextInt( 26 ) );
sb.append( x );
@@ -968,7 +909,7 @@
*/
private String getRedirectPage( final WikiContext ctx ) {
if( m_useCaptcha ) {
- return ctx.getURL( WikiContext.NONE, "Captcha.jsp", "page="+ctx.getEngine().encodeName( ctx.getPage().getName() ) );
+ return ctx.getURL( WikiContext.NONE, "Captcha.jsp", "page= " +ctx.getEngine().encodeName( ctx.getPage().getName() ) );
}
return ctx.getURL( WikiContext.VIEW, m_errorPage );
@@ -1060,7 +1001,6 @@
*/
public static final boolean checkHash( final WikiContext context, final PageContext pageContext ) throws IOException {
final String hashName = getHashFieldName( (HttpServletRequest)pageContext.getRequest() );
-
if( pageContext.getRequest().getParameter(hashName) == null ) {
if( pageContext.getAttribute( hashName ) == null ) {
final Change change = getChange( context, EditorManager.getEditedText( pageContext ) );
@@ -1099,9 +1039,9 @@
* @since
*/
private class Host {
-
- private long m_addedTime = System.currentTimeMillis();
- private long m_releaseTime;
+
+ private long m_addedTime = System.currentTimeMillis();
+ private long m_releaseTime;
private String m_address;
private Change m_change;
@@ -1123,7 +1063,7 @@
public Host( final String ipaddress, final Change change ) {
m_address = ipaddress;
- m_change = change;
+ m_change = change;
m_releaseTime = System.currentTimeMillis() + m_banTime * 60 * 1000L;
}
@@ -1134,18 +1074,18 @@
public String m_change;
public int m_adds;
public int m_removals;
-
+
@Override public String toString() {
return m_change;
}
-
+
@Override public boolean equals( final Object o ) {
if( o instanceof Change ) {
return m_change.equals( ( ( Change )o ).m_change );
}
return false;
}
-
+
@Override public int hashCode() {
return m_change.hashCode() + 17;
}