You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/01/09 23:44:51 UTC
[jspwiki] 02/03: move ATTR_CONTEXT constant from WikiTagBase to
WikiContext
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit c95693f092fa329e40e9e9ccd734bc71bcff4fc0
Author: juanpablo <ju...@apache.org>
AuthorDate: Fri Jan 10 00:30:06 2020 +0100
move ATTR_CONTEXT constant from WikiTagBase to WikiContext
---
.../src/main/java/org/apache/wiki/WikiContext.java | 7 +-
.../org/apache/wiki/auth/AuthorizationManager.java | 38 +++-----
.../apache/wiki/tags/AttachmentsIteratorTag.java | 6 +-
.../org/apache/wiki/tags/HistoryIteratorTag.java | 6 +-
.../java/org/apache/wiki/tags/IteratorTag.java | 19 ++--
.../apache/wiki/tags/SearchResultIteratorTag.java | 39 +++-----
.../java/org/apache/wiki/tags/TranslateTag.java | 43 +++------
.../java/org/apache/wiki/tags/WikiBodyTag.java | 29 ++----
.../java/org/apache/wiki/tags/WikiTagBase.java | 4 +-
.../java/org/apache/wiki/ui/WikiJSPFilter.java | 11 ++-
.../java/org/apache/wiki/ui/WikiServletFilter.java | 102 +++++++--------------
11 files changed, 113 insertions(+), 191 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
index f4a97d5..4f4f42c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiContext.java
@@ -24,7 +24,6 @@ import org.apache.wiki.auth.UserManager;
import org.apache.wiki.auth.WikiPrincipal;
import org.apache.wiki.auth.permissions.AllPermission;
import org.apache.wiki.auth.user.UserDatabase;
-import org.apache.wiki.tags.WikiTagBase;
import org.apache.wiki.ui.Command;
import org.apache.wiki.ui.CommandResolver;
import org.apache.wiki.ui.GroupCommand;
@@ -70,6 +69,8 @@ public class WikiContext implements Cloneable, Command {
private WikiSession m_session;
+ public static final String ATTR_CONTEXT = "jspwiki.context";
+
/** User is administering JSPWiki (Install, SecurityConfig). */
public static final String INSTALL = WikiCommand.INSTALL.getRequestContext();
@@ -636,7 +637,7 @@ public class WikiContext implements Cloneable, Command {
/**
* This method can be used to find the WikiContext programmatically from a JSP PageContext. We check the request context.
- * The wiki context, if it exists, is looked up using the key {@link org.apache.wiki.tags.WikiTagBase#ATTR_CONTEXT}.
+ * The wiki context, if it exists, is looked up using the key {@link #ATTR_CONTEXT}.
*
* @since 2.4
* @param pageContext the JSP page context
@@ -644,7 +645,7 @@ public class WikiContext implements Cloneable, Command {
*/
public static WikiContext findContext( final PageContext pageContext ) {
final HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
- return (WikiContext)request.getAttribute( WikiTagBase.ATTR_CONTEXT );
+ return (WikiContext)request.getAttribute( ATTR_CONTEXT );
}
/**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
index e1acca7..040046d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthorizationManager.java
@@ -39,7 +39,6 @@ import org.apache.wiki.event.WikiEventManager;
import org.apache.wiki.event.WikiSecurityEvent;
import org.apache.wiki.i18n.InternationalizationManager;
import org.apache.wiki.preferences.Preferences;
-import org.apache.wiki.tags.WikiTagBase;
import org.apache.wiki.util.ClassUtil;
import org.freshcookies.security.policy.LocalPolicy;
@@ -383,7 +382,7 @@ public class AuthorizationManager {
* If the user is allowed, this method returns <code>true</code>;
* <code>false</code> otherwise. If access is allowed,
* the wiki context will be added to the request as an attribute
- * with the key name {@link org.apache.wiki.tags.WikiTagBase#ATTR_CONTEXT}.
+ * with the key name {@link org.apache.wiki.WikiContext#ATTR_CONTEXT}.
* Note that this method will automatically redirect the user to
* a login or error page, as appropriate, if access fails. This is
* NOT guaranteed to be default behavior in the future.
@@ -404,7 +403,7 @@ public class AuthorizationManager {
* and delegating the access check to {@link #checkPermission(WikiSession, Permission)}.
* If the user is allowed, this method returns <code>true</code>;
* <code>false</code> otherwise. Also, the wiki context will be added to the request as attribute
- * with the key name {@link org.apache.wiki.tags.WikiTagBase#ATTR_CONTEXT}.
+ * with the key name {@link org.apache.wiki.WikiContext#ATTR_CONTEXT}.
*
* @param context wiki context to check if it is accesible
* @param response The servlet response object
@@ -412,33 +411,26 @@ public class AuthorizationManager {
* @return the result of the access check
* @throws IOException If something goes wrong
*/
- public boolean hasAccess( WikiContext context, HttpServletResponse response, boolean redirect ) throws IOException
- {
- boolean allowed = checkPermission( context.getWikiSession(), context.requiredPermission() );
- ResourceBundle rb = Preferences.getBundle( context, InternationalizationManager.CORE_BUNDLE );
+ public boolean hasAccess( final WikiContext context, final HttpServletResponse response, final boolean redirect ) throws IOException {
+ final boolean allowed = checkPermission( context.getWikiSession(), context.requiredPermission() );
+ final ResourceBundle rb = Preferences.getBundle( context, InternationalizationManager.CORE_BUNDLE );
// Stash the wiki context
- if ( context.getHttpRequest() != null && context.getHttpRequest().getAttribute( WikiTagBase.ATTR_CONTEXT ) == null )
- {
- context.getHttpRequest().setAttribute( WikiTagBase.ATTR_CONTEXT, context );
+ if ( context.getHttpRequest() != null && context.getHttpRequest().getAttribute( WikiContext.ATTR_CONTEXT ) == null ) {
+ context.getHttpRequest().setAttribute( WikiContext.ATTR_CONTEXT, context );
}
// If access not allowed, redirect
- if( !allowed && redirect )
- {
- Principal currentUser = context.getWikiSession().getUserPrincipal();
- String pageurl = context.getPage().getName();
- if( context.getWikiSession().isAuthenticated() )
- {
+ if( !allowed && redirect ) {
+ final Principal currentUser = context.getWikiSession().getUserPrincipal();
+ final String pageurl = context.getPage().getName();
+ if( context.getWikiSession().isAuthenticated() ) {
log.info("User "+currentUser.getName()+" has no access - forbidden (permission=" + context.requiredPermission() + ")" );
- context.getWikiSession().addMessage(
- MessageFormat.format( rb.getString("security.error.noaccess.logged"), context.getName()) );
- }
- else
- {
+ context.getWikiSession().addMessage( MessageFormat.format( rb.getString( "security.error.noaccess.logged" ),
+ context.getName()) );
+ } else {
log.info("User "+currentUser.getName()+" has no access - redirecting (permission=" + context.requiredPermission() + ")");
- context.getWikiSession().addMessage(
- MessageFormat.format( rb.getString("security.error.noaccess"), context.getName()) );
+ context.getWikiSession().addMessage( MessageFormat.format( rb.getString("security.error.noaccess"), context.getName() ) );
}
response.sendRedirect( m_engine.getURL(WikiContext.LOGIN, pageurl, null, false ) );
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
index 232e4ca..41f1c67 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
@@ -53,7 +53,7 @@ public class AttachmentsIteratorTag extends IteratorTag {
*/
@Override
public final int doStartTag() {
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
+ m_wikiContext = (WikiContext) pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
final WikiEngine engine = m_wikiContext.getEngine();
final AttachmentManager mgr = engine.getAttachmentManager();
final WikiPage page;
@@ -81,7 +81,7 @@ public class AttachmentsIteratorTag extends IteratorTag {
final Attachment att = (Attachment) m_iterator.next();
final WikiContext context = (WikiContext)m_wikiContext.clone();
context.setPage( att );
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), att );
} else {
return SKIP_BODY;
@@ -119,7 +119,7 @@ public class AttachmentsIteratorTag extends IteratorTag {
final Attachment att = ( Attachment )m_iterator.next();
final WikiContext context = ( WikiContext )m_wikiContext.clone();
context.setPage( att );
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), att );
return EVAL_BODY_BUFFERED;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/HistoryIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/HistoryIteratorTag.java
index 5134cfa..6686c54 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/HistoryIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/HistoryIteratorTag.java
@@ -47,7 +47,7 @@ public class HistoryIteratorTag extends IteratorTag {
@Override
public final int doStartTag() {
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
+ m_wikiContext = (WikiContext) pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
final WikiEngine engine = m_wikiContext.getEngine();
final WikiPage page = m_wikiContext.getPage();
@@ -65,7 +65,7 @@ public class HistoryIteratorTag extends IteratorTag {
if( m_iterator.hasNext() ) {
final WikiContext context = ( WikiContext )m_wikiContext.clone();
context.setPage( ( WikiPage )m_iterator.next() );
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), context.getPage() );
} else {
return SKIP_BODY;
@@ -97,7 +97,7 @@ public class HistoryIteratorTag extends IteratorTag {
if( m_iterator != null && m_iterator.hasNext() ) {
final WikiContext context = ( WikiContext )m_wikiContext.clone();
context.setPage( ( WikiPage )m_iterator.next() );
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), context.getPage() );
return EVAL_BODY_BUFFERED;
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/IteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/IteratorTag.java
index e04470d..78a1a46 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/IteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/IteratorTag.java
@@ -18,19 +18,18 @@
*/
package org.apache.wiki.tags;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
+import org.apache.log4j.Logger;
+import org.apache.wiki.WikiContext;
+import org.apache.wiki.WikiPage;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TryCatchFinally;
-
-import org.apache.log4j.Logger;
-import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiPage;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
/**
@@ -130,7 +129,7 @@ public abstract class IteratorTag extends BodyTagSupport implements TryCatchFina
//
// Push it to the iterator stack, and set the id.
//
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), o );
}
@@ -141,7 +140,7 @@ public abstract class IteratorTag extends BodyTagSupport implements TryCatchFina
public int doEndTag()
{
// Return back to the original.
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT, m_wikiContext, PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, m_wikiContext, PageContext.REQUEST_SCOPE );
return EVAL_PAGE;
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
index 0eb68eb..f3f8ed2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/SearchResultIteratorTag.java
@@ -18,13 +18,6 @@
*/
package org.apache.wiki.tags;
-import java.io.IOException;
-import java.util.Collection;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-
import org.apache.log4j.Logger;
import org.apache.wiki.WikiContext;
import org.apache.wiki.WikiEngine;
@@ -32,6 +25,12 @@ import org.apache.wiki.search.SearchResult;
import org.apache.wiki.ui.Command;
import org.apache.wiki.ui.PageCommand;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import java.io.IOException;
+import java.util.Collection;
+
/**
* Iterates through Search result results.
*
@@ -89,7 +88,7 @@ public class SearchResultIteratorTag
}
m_count = 0;
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
+ m_wikiContext = (WikiContext) pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
return nextResult();
}
@@ -107,9 +106,7 @@ public class SearchResultIteratorTag
WikiContext context = new WikiContext( engine, request, command );
// Stash it in the page context
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT,
- context,
- PageContext.REQUEST_SCOPE );
+ pageContext.setAttribute( WikiContext.ATTR_CONTEXT, context, PageContext.REQUEST_SCOPE );
pageContext.setAttribute( getId(), r );
return EVAL_BODY_BUFFERED;
@@ -118,18 +115,13 @@ public class SearchResultIteratorTag
return SKIP_BODY;
}
- public int doAfterBody()
- {
- if( bodyContent != null )
- {
- try
- {
- JspWriter out = getPreviousOut();
+ public int doAfterBody() {
+ if( bodyContent != null ) {
+ try {
+ final JspWriter out = getPreviousOut();
out.print(bodyContent.getString());
bodyContent.clearBody();
- }
- catch( IOException e )
- {
+ } catch( final IOException e ) {
log.error("Unable to get inner tag text", e);
// FIXME: throw something?
}
@@ -138,10 +130,9 @@ public class SearchResultIteratorTag
return nextResult();
}
- public int doEndTag()
- {
+ public int doEndTag() {
m_iterator = null;
-
return super.doEndTag();
}
+
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
index d838d1b..f6cbd0c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/TranslateTag.java
@@ -18,15 +18,14 @@
*/
package org.apache.wiki.tags;
+import org.apache.log4j.Logger;
+import org.apache.wiki.WikiContext;
+
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
-import org.apache.wiki.WikiContext;
-
-import org.apache.log4j.Logger;
-
/**
* Converts the body text into HTML content.
*
@@ -37,45 +36,31 @@ public class TranslateTag
{
private static final long serialVersionUID = 0L;
- static Logger log = Logger.getLogger( TranslateTag.class );
+ private static final Logger log = Logger.getLogger( TranslateTag.class );
- public final int doAfterBody()
- throws JspException
- {
- try
- {
- WikiContext context = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
+ public final int doAfterBody() throws JspException {
+ try {
+ WikiContext context = (WikiContext) pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
- //
- // Because the TranslateTag should not affect any of the real page attributes
- // we have to make a clone here.
- //
-
+ // Because the TranslateTag should not affect any of the real page attributes we have to make a clone here.
context = context.deepClone();
- //
// Get the page data.
- //
- BodyContent bc = getBodyContent();
+ final BodyContent bc = getBodyContent();
String wikiText = bc.getString();
bc.clearBody();
- if( wikiText != null )
- {
+ if( wikiText != null ) {
wikiText = wikiText.trim();
-
- String result = context.getEngine().textToHTML( context, wikiText );
-
+ final String result = context.getEngine().textToHTML( context, wikiText );
getPreviousOut().write( result );
}
- }
- catch( Exception e )
- {
+ } catch( final Exception e ) {
log.error( "Tag failed", e );
- throw new JspException( "Tag failed, check logs: "+e.getMessage() );
+ throw new JspException( "Tag failed, check logs: " + e.getMessage() );
}
return SKIP_BODY;
}
+
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiBodyTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiBodyTag.java
index a73a794..fe86320 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiBodyTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiBodyTag.java
@@ -18,16 +18,14 @@
*/
package org.apache.wiki.tags;
-import java.io.IOException;
+import org.apache.log4j.Logger;
+import org.apache.wiki.WikiContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TryCatchFinally;
-
-import org.apache.log4j.Logger;
-
-import org.apache.wiki.WikiContext;
+import java.io.IOException;
/**
@@ -40,22 +38,15 @@ public abstract class WikiBodyTag extends BodyTagSupport implements TryCatchFina
protected WikiContext m_wikiContext;
private static final Logger log = Logger.getLogger( WikiBodyTag.class );
- public int doStartTag() throws JspException
- {
- try
- {
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
-
- if( m_wikiContext == null )
- {
+ public int doStartTag() throws JspException {
+ try {
+ m_wikiContext = (WikiContext) pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
+ if( m_wikiContext == null ) {
throw new JspException("WikiContext may not be NULL - serious internal problem!");
}
return doWikiStartTag();
- }
- catch( Exception e )
- {
+ } catch( final Exception e ) {
log.error( "Tag failed", e );
throw new JspException( "Tag failed, check logs: "+e.getMessage() );
}
@@ -70,8 +61,7 @@ public abstract class WikiBodyTag extends BodyTagSupport implements TryCatchFina
*/
public abstract int doWikiStartTag() throws JspException, IOException;
- public void doCatch(Throwable arg0) throws Throwable
- {
+ public void doCatch(Throwable arg0) throws Throwable {
}
public void doFinally()
@@ -79,5 +69,4 @@ public abstract class WikiBodyTag extends BodyTagSupport implements TryCatchFina
m_wikiContext = null;
}
-
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiTagBase.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiTagBase.java
index 8d2b0be..123b2af 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiTagBase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/WikiTagBase.java
@@ -40,8 +40,6 @@ public abstract class WikiTagBase extends TagSupport implements TryCatchFinally
private static final long serialVersionUID = -1409836349293777141L;
private static final Logger log = Logger.getLogger( WikiTagBase.class );
- public static final String ATTR_CONTEXT = "jspwiki.context";
-
protected WikiContext m_wikiContext;
/**
@@ -64,7 +62,7 @@ public abstract class WikiTagBase extends TagSupport implements TryCatchFinally
public int doStartTag() throws JspException {
try {
- m_wikiContext = ( WikiContext )pageContext.getAttribute( ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
+ m_wikiContext = ( WikiContext )pageContext.getAttribute( WikiContext.ATTR_CONTEXT, PageContext.REQUEST_SCOPE );
if( m_wikiContext == null ) {
throw new JspException("WikiContext may not be NULL - serious internal problem!");
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
index 41d55c9..7dee58c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiJSPFilter.java
@@ -19,6 +19,7 @@
package org.apache.wiki.ui;
import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
import org.apache.log4j.NDC;
import org.apache.wiki.WatchDog;
import org.apache.wiki.WikiContext;
@@ -75,8 +76,9 @@ import java.nio.charset.Charset;
* @see TemplateManager
* @see org.apache.wiki.tags.RequestResourceTag
*/
-public class WikiJSPFilter extends WikiServletFilter
-{
+public class WikiJSPFilter extends WikiServletFilter {
+
+ private static final Logger log = Logger.getLogger( WikiJSPFilter.class );
private String m_wiki_encoding;
private boolean useEncoding;
@@ -249,9 +251,8 @@ public class WikiJSPFilter extends WikiServletFilter
* Simple response wrapper that just allows us to gobble through the entire
* response before it's output.
*/
- private static class JSPWikiServletResponseWrapper
- extends HttpServletResponseWrapper
- {
+ private static class JSPWikiServletResponseWrapper extends HttpServletResponseWrapper {
+
ByteArrayOutputStream m_output;
private ByteArrayServletOutputStream m_servletOut;
private PrintWriter m_writer;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
index 45a95e1..4d8e08f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiServletFilter.java
@@ -25,7 +25,6 @@ import org.apache.wiki.WikiEngine;
import org.apache.wiki.WikiSession;
import org.apache.wiki.auth.SessionMonitor;
import org.apache.wiki.auth.WikiSecurityException;
-import org.apache.wiki.tags.WikiTagBase;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@@ -40,23 +39,17 @@ import java.io.IOException;
import java.io.PrintWriter;
/**
- * Filter that verifies that the {@link org.apache.wiki.WikiEngine} is running, and
- * sets the authentication status for the user's WikiSession. Each HTTP request
- * processed by this filter is wrapped by a {@link WikiRequestWrapper}. The wrapper's
- * primary responsibility is to return the correct <code>userPrincipal</code> and
- * <code>remoteUser</code> for authenticated JSPWiki users (whether
- * authenticated by container or by JSPWiki's custom system).
- * The wrapper's other responsibility is to incorporate JSPWiki built-in roles
- * into the role-checking algorithm for {@link HttpServletRequest#isUserInRole(String)}.
- * Just before the request is wrapped, the method {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)} executes;
- * this method contains all of the logic needed to grab any user login credentials set
- * by the container or by cookies.
- *
- *
+ * Filter that verifies that the {@link org.apache.wiki.WikiEngine} is running, and sets the authentication status for the user's
+ * WikiSession. Each HTTP request processed by this filter is wrapped by a {@link WikiRequestWrapper}. The wrapper's primary responsibility
+ * is to return the correct <code>userPrincipal</code> and <code>remoteUser</code> for authenticated JSPWiki users (whether authenticated
+ * by container or by JSPWiki's custom system). The wrapper's other responsibility is to incorporate JSPWiki built-in roles
+ * into the role-checking algorithm for {@link HttpServletRequest#isUserInRole(String)}. Just before the request is wrapped, the method
+ * {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)} executes; this method contains all of the logic needed to
+ * grab any user login credentials set by the container or by cookies.
*/
-public class WikiServletFilter implements Filter
-{
- protected static final Logger log = Logger.getLogger( WikiServletFilter.class );
+public class WikiServletFilter implements Filter {
+
+ private static final Logger log = Logger.getLogger( WikiServletFilter.class );
protected WikiEngine m_engine = null;
/**
@@ -73,13 +66,11 @@ public class WikiServletFilter implements Filter
* @param config The FilterConfig.
* @throws ServletException If a WikiEngine cannot be started.
*/
- public void init( FilterConfig config ) throws ServletException
- {
- ServletContext context = config.getServletContext();
+ public void init( final FilterConfig config ) throws ServletException {
+ final ServletContext context = config.getServletContext();
// TODO REMOVEME when resolving JSPWIKI-129
- if( System.getSecurityManager() != null )
- {
+ if( System.getSecurityManager() != null ) {
context.log( "== JSPWIKI WARNING == : This container is running with a security manager. JSPWiki does not yet really support that right now. See issue JSPWIKI-129 for details and information on how to proceed." );
}
@@ -89,13 +80,11 @@ public class WikiServletFilter implements Filter
/**
* Destroys the WikiServletFilter.
*/
- public void destroy()
- {
+ public void destroy() {
}
/**
- * Checks that the WikiEngine is running ok, wraps the current
- * HTTP request, and sets the correct authentication state for the users's
+ * Checks that the WikiEngine is running ok, wraps the current HTTP request, and sets the correct authentication state for the users's
* WikiSession. First, the method {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)}
* executes, which sets the authentication state. Then, the request is wrapped with a
* {@link WikiRequestWrapper}.
@@ -105,19 +94,14 @@ public class WikiServletFilter implements Filter
* @throws ServletException if {@link org.apache.wiki.auth.AuthenticationManager#login(HttpServletRequest)} fails for any reason
* @throws IOException If writing to the servlet response fails.
*/
- public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException
- {
- //
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
// Sanity check; it might be true in some conditions, but we need to know where.
- //
- if( chain == null )
- {
+ if( chain == null ) {
throw new ServletException("FilterChain is null, even if it should not be. Please report this to the jspwiki development team.");
}
- if( m_engine == null )
- {
- PrintWriter out = response.getWriter();
+ if( m_engine == null ) {
+ final PrintWriter out = response.getWriter();
out.print("<!DOCTYPE html><html lang=\"en\"><head><title>Fatal problem with JSPWiki</title></head>");
out.print("<body>");
out.print("<h1>JSPWiki has not been started</h1>");
@@ -138,33 +122,24 @@ public class WikiServletFilter implements Filter
// Set the character encoding
httpRequest.setCharacterEncoding( m_engine.getContentEncoding().displayName() );
- if ( !isWrapped( request ) )
- {
+ if ( !isWrapped( request ) ) {
// Prepare the WikiSession
- try
- {
+ try {
m_engine.getAuthenticationManager().login( httpRequest );
- WikiSession wikiSession = SessionMonitor.getInstance( m_engine ).find( httpRequest.getSession() );
+ final WikiSession wikiSession = SessionMonitor.getInstance( m_engine ).find( httpRequest.getSession() );
httpRequest = new WikiRequestWrapper( m_engine, httpRequest );
- if ( log.isDebugEnabled() )
- {
+ if ( log.isDebugEnabled() ) {
log.debug( "Executed security filters for user=" + wikiSession.getLoginPrincipal().getName() + ", path=" + httpRequest.getRequestURI() );
}
- }
- catch ( WikiSecurityException e )
- {
+ } catch( final WikiSecurityException e ) {
throw new ServletException( e );
}
}
- try
- {
+ try {
NDC.push( m_engine.getApplicationName()+":"+httpRequest.getRequestURL() );
-
chain.doFilter( httpRequest, response );
- }
- finally
- {
+ } finally {
NDC.pop();
NDC.remove();
}
@@ -172,19 +147,14 @@ public class WikiServletFilter implements Filter
}
/**
- * Figures out the wiki context from the request. This method does not create the
- * context if it does not exist.
+ * Figures out the wiki context from the request. This method does not create the context if it does not exist.
*
* @param request The request to examine
* @return A valid WikiContext value (or null, if the context could not be located).
*/
- protected WikiContext getWikiContext( ServletRequest request )
- {
- HttpServletRequest httpRequest = (HttpServletRequest) request;
-
- WikiContext ctx = (WikiContext) httpRequest.getAttribute( WikiTagBase.ATTR_CONTEXT );
-
- return ctx;
+ protected WikiContext getWikiContext( final ServletRequest request ) {
+ final HttpServletRequest httpRequest = (HttpServletRequest) request;
+ return (WikiContext) httpRequest.getAttribute( WikiContext.ATTR_CONTEXT );
}
/**
@@ -194,15 +164,11 @@ public class WikiServletFilter implements Filter
* @return <code>true</code> if the request has previously been wrapped;
* <code>false</code> otherwise
*/
- private boolean isWrapped( ServletRequest request )
- {
- while ( !(request instanceof WikiRequestWrapper )
- && request != null
- && request instanceof HttpServletRequestWrapper )
- {
- request = ((HttpServletRequestWrapper) request).getRequest();
+ private boolean isWrapped( ServletRequest request ) {
+ while( !(request instanceof WikiRequestWrapper ) && request != null && request instanceof HttpServletRequestWrapper ) {
+ request = ( ( HttpServletRequestWrapper ) request ).getRequest();
}
- return request instanceof WikiRequestWrapper ? true : false;
+ return request instanceof WikiRequestWrapper;
}
}