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 22:17:41 UTC
[jspwiki] 31/32: apply format and fixes suggested by IntelliJ
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 2297125aa8a2d6cdbfaf1f9c5be89591ca0dcd8b
Author: juanpablo <ju...@apache.org>
AuthorDate: Thu Jan 9 21:38:29 2020 +0100
apply format and fixes suggested by IntelliJ
---
.../main/java/org/apache/wiki/WikiProvider.java | 3 +-
.../src/main/java/org/apache/wiki/WikiServlet.java | 24 +-
.../src/main/java/org/apache/wiki/WikiSession.java | 603 ++++++++-------------
.../main/java/org/apache/wiki/plugin/Counter.java | 66 +--
4 files changed, 256 insertions(+), 440 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiProvider.java
index d9e6f45..8e13402 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiProvider.java
@@ -30,8 +30,7 @@ import java.util.Properties;
*
* @since 2.0
*/
-public interface WikiProvider
-{
+public interface WikiProvider {
/**
* Passing this to any method should get the latest version
*/
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
index b8a405b..45c5f2f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiServlet.java
@@ -18,7 +18,9 @@
*/
package org.apache.wiki;
-import java.io.IOException;
+import net.sf.ehcache.CacheManager;
+import org.apache.log4j.Logger;
+import org.apache.wiki.url.DefaultURLConstructor;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
@@ -26,11 +28,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
-import org.apache.log4j.Logger;
-import org.apache.wiki.url.DefaultURLConstructor;
-
-import net.sf.ehcache.CacheManager;
+import java.io.IOException;
/**
@@ -44,13 +42,13 @@ public class WikiServlet extends HttpServlet {
private static final long serialVersionUID = 3258410651167633973L;
private WikiEngine m_engine;
- static final Logger log = Logger.getLogger( WikiServlet.class.getName() );
+ private static final Logger log = Logger.getLogger( WikiServlet.class.getName() );
/**
* {@inheritDoc}
*/
@Override
- public void init( ServletConfig config ) throws ServletException {
+ public void init( final ServletConfig config ) throws ServletException {
super.init( config );
m_engine = WikiEngine.getInstance( config );
log.info( "WikiServlet initialized." );
@@ -77,7 +75,7 @@ public class WikiServlet extends HttpServlet {
* {@inheritDoc}
*/
@Override
- public void doPost( HttpServletRequest req, HttpServletResponse res ) throws IOException, ServletException {
+ public void doPost( final HttpServletRequest req, final HttpServletResponse res ) throws IOException, ServletException {
doGet( req, res );
}
@@ -85,7 +83,7 @@ public class WikiServlet extends HttpServlet {
* {@inheritDoc}
*/
@Override
- public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException, ServletException {
+ public void doGet( final HttpServletRequest req, final HttpServletResponse res ) throws IOException, ServletException {
String pageName = DefaultURLConstructor.parsePageFromURL( req, m_engine.getContentEncoding() );
log.info( "Request for page: " + pageName );
@@ -93,9 +91,9 @@ public class WikiServlet extends HttpServlet {
pageName = m_engine.getFrontPage(); // FIXME: Add special pages as well
}
- String jspPage = m_engine.getURLConstructor().getForwardPage( req );
- RequestDispatcher dispatcher = req.getRequestDispatcher( "/" + jspPage + "?page=" +
- m_engine.encodeName( pageName ) + "&" + req.getQueryString() );
+ final String jspPage = m_engine.getURLConstructor().getForwardPage( req );
+ final RequestDispatcher dispatcher = req.getRequestDispatcher( "/" + jspPage + "?page=" +
+ m_engine.encodeName( pageName ) + "&" + req.getQueryString() );
dispatcher.forward( req, res );
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
index eb58b90..756260f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
@@ -51,10 +51,9 @@ import java.util.Map;
import java.util.Set;
/**
- * <p>Represents a long-running wiki session, with an associated user Principal,
- * user Subject, and authentication status. This class is initialized with
- * minimal, default-deny values: authentication is set to <code>false</code>,
- * and the user principal is set to <code>null</code>.</p>
+ * <p>Represents a long-running wiki session, with an associated user Principal, user Subject, and authentication status. This class
+ * is initialized with minimal, default-deny values: authentication is set to <code>false</code>, and the user principal is set to
+ * <code>null</code>.</p>
* <p>The WikiSession class allows callers to:</p>
* <ul>
* <li>Obtain the authentication status of the user via
@@ -66,34 +65,23 @@ import java.util.Set;
* {@link #addMessage(String)}, {@link #getMessages(String)}
* and {@link #clearMessages(String)}</li>
* </ul>
- * <p>To keep track of the Principals each user posseses, each WikiSession
- * stores a JAAS Subject. Various login processes add or remove Principals
- * when users authenticate or log out.</p>
- * <p>WikiSession implements the {@link org.apache.wiki.event.WikiEventListener}
- * interface and listens for group add/change/delete events fired by
- * event sources the WikiSession is registered with. Normally,
- * {@link org.apache.wiki.auth.AuthenticationManager} registers each WikiSession
- * with the {@link org.apache.wiki.auth.authorize.GroupManager}
- * so it can catch group events. Thus, when a user is added to a
- * {@link org.apache.wiki.auth.authorize.Group}, a corresponding
- * {@link org.apache.wiki.auth.GroupPrincipal} is injected into
- * the Subject's Principal set. Likewise, when the user is removed from
- * the Group or the Group is deleted, the GroupPrincipal is removed
- * from the Subject. The effect that this strategy produces is extremely
- * beneficial: when someone adds a user to a wiki group, that user
- * <em>immediately</em> gains the privileges associated with that
- * group; he or she does not need to re-authenticate.
+ * <p>To keep track of the Principals each user posseses, each WikiSession stores a JAAS Subject. Various login processes add or
+ * remove Principals when users authenticate or log out.</p>
+ * <p>WikiSession implements the {@link org.apache.wiki.event.WikiEventListener} interface and listens for group add/change/delete
+ * events fired by event sources the WikiSession is registered with. Normally, {@link org.apache.wiki.auth.AuthenticationManager}
+ * registers each WikiSession with the {@link org.apache.wiki.auth.authorize.GroupManager} so it can catch group events. Thus, when
+ * a user is added to a {@link org.apache.wiki.auth.authorize.Group}, a corresponding {@link org.apache.wiki.auth.GroupPrincipal} is
+ * injected into the Subject's Principal set. Likewise, when the user is removed from the Group or the Group is deleted, the
+ * GroupPrincipal is removed from the Subject. The effect that this strategy produces is extremely beneficial: when someone adds a user
+ * to a wiki group, that user <em>immediately</em> gains the privileges associated with that group; he or she does not need to
+ * re-authenticate.
* </p>
- * <p>In addition to methods for examining individual <code>WikiSession</code>
- * objects, this class also contains a number of static methods for
- * managing WikiSessions for an entire wiki. These methods allow callers
- * to find, query and remove WikiSession objects, and
+ * <p>In addition to methods for examining individual <code>WikiSession</code> objects, this class also contains a number of static
+ * methods for managing WikiSessions for an entire wiki. These methods allow callers to find, query and remove WikiSession objects, and
* to obtain a list of the current wiki session users.</p>
- * <p>WikiSession encloses a protected static class, {@link SessionMonitor},
- * to keep track of WikiSessions registered with each wiki.</p>
+ * <p>WikiSession encloses a protected static class, {@link SessionMonitor}, to keep track of WikiSessions registered with each wiki.</p>
*/
-public final class WikiSession implements WikiEventListener
-{
+public final class WikiSession implements WikiEventListener {
/** An anonymous user's session status. */
public static final String ANONYMOUS = "anonymous";
@@ -132,36 +120,31 @@ public final class WikiSession implements WikiEventListener
private Locale m_cachedLocale = Locale.getDefault();
/**
- * Returns <code>true</code> if one of this WikiSession's user Principals
- * can be shown to belong to a particular wiki group. If the user is
- * not authenticated, this method will always return <code>false</code>.
+ * Returns <code>true</code> if one of this WikiSession's user Principals can be shown to belong to a particular wiki group. If
+ * the user is not authenticated, this method will always return <code>false</code>.
+ *
* @param group the group to test
* @return the result
*/
- protected boolean isInGroup( Group group )
- {
- for ( Principal principal : getPrincipals() )
- {
- if ( isAuthenticated() && group.isMember( principal ) )
- {
- return true;
- }
+ protected boolean isInGroup( final Group group ) {
+ for( final Principal principal : getPrincipals() ) {
+ if( isAuthenticated() && group.isMember( principal ) ) {
+ return true;
+ }
}
return false;
}
/**
- * Private constructor to prevent WikiSession from being instantiated
- * directly.
+ * Private constructor to prevent WikiSession from being instantiated directly.
*/
- private WikiSession()
- {
+ private WikiSession() {
}
/**
- * Returns <code>true</code> if the user is considered asserted via
- * a session cookie; that is, the Subject contains the Principal
+ * Returns <code>true</code> if the user is considered asserted via a session cookie; that is, the Subject contains the Principal
* Role.ASSERTED.
+ *
* @return Returns <code>true</code> if the user is asserted
*/
public boolean isAsserted()
@@ -170,26 +153,20 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Returns the authentication status of the user's session. The user is
- * considered authenticated if the Subject contains the Principal
- * Role.AUTHENTICATED. If this method determines that an earlier
- * LoginModule did not inject Role.AUTHENTICATED, it will inject one
- * if the user is not anonymous <em>and</em> not asserted.
+ * Returns the authentication status of the user's session. The user is considered authenticated if the Subject contains the
+ * Principal Role.AUTHENTICATED. If this method determines that an earlier LoginModule did not inject Role.AUTHENTICATED, it
+ * will inject one if the user is not anonymous <em>and</em> not asserted.
+ *
* @return Returns <code>true</code> if the user is authenticated
*/
- public boolean isAuthenticated()
- {
+ public boolean isAuthenticated() {
// If Role.AUTHENTICATED is in principals set, always return true.
- if ( m_subject.getPrincipals().contains( Role.AUTHENTICATED ) )
- {
+ if ( m_subject.getPrincipals().contains( Role.AUTHENTICATED ) ) {
return true;
}
- // With non-JSPWiki LoginModules, the role may not be there, so
- // we need to add it if the user really is authenticated.
- if ( !isAnonymous() && !isAsserted() )
- {
- // Inject AUTHENTICATED role
+ // With non-JSPWiki LoginModules, the role may not be there, so we need to add it if the user really is authenticated.
+ if ( !isAnonymous() && !isAsserted() ) {
m_subject.getPrincipals().add( Role.AUTHENTICATED );
return true;
}
@@ -198,8 +175,7 @@ public final class WikiSession implements WikiEventListener
}
/**
- * <p>Determines whether the current session is anonymous. This will be
- * true if any of these conditions are true:</p>
+ * <p>Determines whether the current session is anonymous. This will be true if any of these conditions are true:</p>
* <ul>
* <li>The session's Principal set contains
* {@link org.apache.wiki.auth.authorize.Role#ANONYMOUS}</li>
@@ -208,30 +184,24 @@ public final class WikiSession implements WikiEventListener
* <li>The Principal returned by {@link #getUserPrincipal()} evaluates
* to an IP address.</li>
* </ul>
- * <p>The criteria above are listed in the order in which they are
- * evaluated.</p>
- * @return whether the current user's identity is equivalent to an IP
- * address
+ * <p>The criteria above are listed in the order in which they are evaluated.</p>
+ * @return whether the current user's identity is equivalent to an IP address
*/
- public boolean isAnonymous()
- {
- Set<Principal> principals = m_subject.getPrincipals();
+ public boolean isAnonymous() {
+ final Set< Principal > principals = m_subject.getPrincipals();
return principals.contains( Role.ANONYMOUS ) ||
- principals.contains( WikiPrincipal.GUEST ) ||
- isIPV4Address( getUserPrincipal().getName() );
+ principals.contains( WikiPrincipal.GUEST ) ||
+ isIPV4Address( getUserPrincipal().getName() );
}
/**
- * <p> Returns the Principal used to log in to an authenticated session. The
- * login principal is determined by examining the Subject's Principal set
- * for PrincipalWrappers or WikiPrincipals with type designator
- * <code>LOGIN_NAME</code>; the first one found is the login principal.
- * If one is not found, this method returns the first principal that isn't
- * of type Role or GroupPrincipal. If neither of these conditions hold, this method returns
- * {@link org.apache.wiki.auth.WikiPrincipal#GUEST}.
- * @return the login Principal. If it is a PrincipalWrapper containing an
- * externally-provided Principal, the object returned is the Principal, not
- * the wrapper around it.
+ * <p> Returns the Principal used to log in to an authenticated session. The login principal is determined by examining the
+ * Subject's Principal set for PrincipalWrappers or WikiPrincipals with type designator <code>LOGIN_NAME</code>; the first one
+ * found is the login principal. If one is not found, this method returns the first principal that isn't of type Role or
+ * GroupPrincipal. If neither of these conditions hold, this method returns {@link org.apache.wiki.auth.WikiPrincipal#GUEST}.
+ *
+ * @return the login Principal. If it is a PrincipalWrapper containing an externally-provided Principal, the object returned is the
+ * Principal, not the wrapper around it.
*/
public Principal getLoginPrincipal()
{
@@ -239,16 +209,15 @@ public final class WikiSession implements WikiEventListener
}
/**
- * <p>Returns the primary user Principal associated with this session. The
- * primary user principal is determined as follows:</p> <ol> <li>If the
- * Subject's Principal set contains WikiPrincipals, the first WikiPrincipal
- * with type designator <code>WIKI_NAME</code> or (alternatively)
- * <code>FULL_NAME</code> is the primary Principal.</li>
- * <li>For all other cases, the first Principal in the Subject's principal
- * collection that that isn't of type Role or GroupPrincipal is the primary.</li>
+ * <p>Returns the primary user Principal associated with this session. The primary user principal is determined as follows:</p>
+ * <ol>
+ * <li>If the Subject's Principal set contains WikiPrincipals, the first WikiPrincipal with type designator
+ * <code>WIKI_NAME</code> or (alternatively) <code>FULL_NAME</code> is the primary Principal.</li>
+ * <li>For all other cases, the first Principal in the Subject's principal collection that that isn't of type Role or
+ * GroupPrincipal is the primary.</li>
* </ol>
- * If no primary user Principal is found, this method returns
- * {@link org.apache.wiki.auth.WikiPrincipal#GUEST}.
+ * If no primary user Principal is found, this method returns {@link org.apache.wiki.auth.WikiPrincipal#GUEST}.
+ *
* @return the primary user Principal
*/
public Principal getUserPrincipal()
@@ -257,12 +226,10 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Returns a cached Locale object for this user. It's better to use
- * WikiContext's corresponding getBundle() method, since that will actually
- * react if the user changes the locale in the middle, but if that's not
- * available (or, for some reason, you need the speed), this method can
- * also be used. The Locale expires when the WikiSession expires, and
- * currently there is no way to reset the Locale.
+ * Returns a cached Locale object for this user. It's better to use WikiContext's corresponding getBundle() method, since that
+ * will actually react if the user changes the locale in the middle, but if that's not available (or, for some reason, you need
+ * the speed), this method can also be used. The Locale expires when the WikiSession expires, and currently there is no way to
+ * reset the Locale.
*
* @return A cached Locale object
* @since 2.5.96
@@ -273,36 +240,28 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Adds a message to the generic list of messages associated with the
- * session. These messages retain their order of insertion and remain until
- * the {@link #clearMessages()} method is called.
+ * Adds a message to the generic list of messages associated with the session. These messages retain their order of insertion and
+ * remain until the {@link #clearMessages()} method is called.
+ *
* @param message the message to add; if <code>null</code> it is ignored.
*/
- public void addMessage(String message)
+ public void addMessage( final String message )
{
addMessage( ALL, message );
}
-
/**
- * Adds a message to the specific set of messages associated with the
- * session. These messages retain their order of insertion and remain until
- * the {@link #clearMessages()} method is called.
+ * Adds a message to the specific set of messages associated with the session. These messages retain their order of insertion and
+ * remain until the {@link #clearMessages()} method is called.
+ *
* @param topic the topic to associate the message to;
* @param message the message to add
*/
- public void addMessage(String topic, String message)
- {
- if ( topic == null )
- {
+ public void addMessage( final String topic, final String message ) {
+ if ( topic == null ) {
throw new IllegalArgumentException( "addMessage: topic cannot be null." );
}
- Set<String> messages = m_messages.get( topic );
- if (messages == null )
- {
- messages = new LinkedHashSet<>();
- m_messages.put( topic, messages );
- }
+ final Set< String > messages = m_messages.computeIfAbsent( topic, k -> new LinkedHashSet<>() );
messages.add( StringUtils.defaultString( message ) );
}
@@ -316,13 +275,12 @@ public final class WikiSession implements WikiEventListener
/**
* Clears all messages associated with a session topic.
+ *
* @param topic the topic whose messages should be cleared.
*/
- public void clearMessages( String topic )
- {
- Set<String> messages = m_messages.get( topic );
- if ( messages != null )
- {
+ public void clearMessages( final String topic ) {
+ final Set< String > messages = m_messages.get( topic );
+ if ( messages != null ) {
m_messages.clear();
}
}
@@ -345,32 +303,27 @@ public final class WikiSession implements WikiEventListener
* @return the current messages.
* @param topic The topic
*/
- public String[] getMessages( String topic )
- {
- Set<String> messages = m_messages.get( topic );
- if ( messages == null || messages.size() == 0 )
- {
+ public String[] getMessages( final String topic ) {
+ final Set< String > messages = m_messages.get( topic );
+ if( messages == null || messages.size() == 0 ) {
return new String[0];
}
return messages.toArray( new String[messages.size()] );
}
/**
- * Returns all user Principals associated with this session. User principals
- * are those in the Subject's principal collection that aren't of type Role or
- * of type GroupPrincipal. This is a defensive copy.
+ * Returns all user Principals associated with this session. User principals are those in the Subject's principal collection that
+ * aren't of type Role or of type GroupPrincipal. This is a defensive copy.
+ *
* @return Returns the user principal
* @see org.apache.wiki.auth.AuthenticationManager#isUserPrincipal(Principal)
*/
- public Principal[] getPrincipals()
- {
- ArrayList<Principal> principals = new ArrayList<>();
+ public Principal[] getPrincipals() {
+ final ArrayList< Principal > principals = new ArrayList<>();
// Take the first non Role as the main Principal
- for( Principal principal : m_subject.getPrincipals() )
- {
- if ( AuthenticationManager.isUserPrincipal( principal ) )
- {
+ for( final Principal principal : m_subject.getPrincipals() ) {
+ if ( AuthenticationManager.isUserPrincipal( principal ) ) {
principals.add( principal );
}
}
@@ -379,21 +332,16 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Returns an array of Principal objects that represents the groups and
- * roles that the user associated with a WikiSession possesses. The array is
- * built by iterating through the Subject's Principal set and extracting all
- * Role and GroupPrincipal objects into a list. The list is returned as an
- * array sorted in the natural order implied by each Principal's
- * <code>getName</code> method. Note that this method does <em>not</em>
- * consult the external Authorizer or GroupManager; it relies on the
- * Principals that have been injected into the user's Subject at login time,
- * or after group creation/modification/deletion.
- * @return an array of Principal objects corresponding to the roles the
- * Subject possesses
+ * Returns an array of Principal objects that represents the groups and roles that the user associated with a WikiSession possesses.
+ * The array is built by iterating through the Subject's Principal set and extracting all Role and GroupPrincipal objects into a
+ * list. The list is returned as an array sorted in the natural order implied by each Principal's <code>getName</code> method. Note
+ * that this method does <em>not</em> consult the external Authorizer or GroupManager; it relies on the Principals that have been
+ * injected into the user's Subject at login time, or after group creation/modification/deletion.
+ *
+ * @return an array of Principal objects corresponding to the roles the Subject possesses
*/
- public Principal[] getRoles()
- {
- Set<Principal> roles = new HashSet<>();
+ public Principal[] getRoles() {
+ final Set< Principal > roles = new HashSet<>();
// Add all of the Roles possessed by the Subject directly
roles.addAll( m_subject.getPrincipals( Role.class ) );
@@ -402,104 +350,79 @@ public final class WikiSession implements WikiEventListener
roles.addAll( m_subject.getPrincipals( GroupPrincipal.class ) );
// Return a defensive copy
- Principal[] roleArray = roles.toArray( new Principal[roles.size()] );
+ final Principal[] roleArray = roles.toArray( new Principal[roles.size()] );
Arrays.sort( roleArray, WikiPrincipal.COMPARATOR );
return roleArray;
}
/**
- * Removes the wiki session associated with the user's HTTP request
- * from the cache of wiki sessions, typically as part of a logout
- * process.
+ * Removes the wiki session associated with the user's HTTP request from the cache of wiki sessions, typically as part of a
+ * logout process.
+ *
* @param engine the wiki engine
* @param request the users's HTTP request
*/
- public static void removeWikiSession( WikiEngine engine, HttpServletRequest request )
- {
- if ( engine == null || request == null )
- {
+ public static void removeWikiSession( final WikiEngine engine, final HttpServletRequest request ) {
+ if ( engine == null || request == null ) {
throw new IllegalArgumentException( "Request or engine cannot be null." );
}
- SessionMonitor monitor = SessionMonitor.getInstance( engine );
+ final SessionMonitor monitor = SessionMonitor.getInstance( engine );
monitor.remove( request.getSession() );
}
/**
- * Returns <code>true</code> if the WikiSession's Subject
- * possess a supplied Principal. This method eliminates the need
- * to externally request and inspect the JAAS subject.
+ * Returns <code>true</code> if the WikiSession's Subject possess a supplied Principal. This method eliminates the need to externally
+ * request and inspect the JAAS subject.
+ *
* @param principal the Principal to test
* @return the result
*/
- public boolean hasPrincipal( Principal principal )
- {
+ public boolean hasPrincipal( final Principal principal ) {
return m_subject.getPrincipals().contains( principal );
-
}
/**
- * Listens for WikiEvents generated by source objects such as the
- * GroupManager. This method adds Principals to the private Subject managed
- * by the WikiSession.
+ * Listens for WikiEvents generated by source objects such as the GroupManager. This method adds Principals to the private Subject
+ * managed by the WikiSession.
+ *
* @see org.apache.wiki.event.WikiEventListener#actionPerformed(org.apache.wiki.event.WikiEvent)
*/
@Override
- public void actionPerformed( WikiEvent event )
- {
- if ( event instanceof WikiSecurityEvent )
- {
- WikiSecurityEvent e = (WikiSecurityEvent)event;
- if ( e.getTarget() != null )
- {
- switch (e.getType() )
- {
+ public void actionPerformed( final WikiEvent event ) {
+ if ( event instanceof WikiSecurityEvent ) {
+ final WikiSecurityEvent e = (WikiSecurityEvent)event;
+ if ( e.getTarget() != null ) {
+ switch (e.getType() ) {
case WikiSecurityEvent.GROUP_ADD:
- {
- Group group = (Group)e.getTarget();
- if ( isInGroup( group ) )
- {
- m_subject.getPrincipals().add( group.getPrincipal() );
+ final Group groupAdd = (Group)e.getTarget();
+ if ( isInGroup( groupAdd ) ) {
+ m_subject.getPrincipals().add( groupAdd.getPrincipal() );
}
break;
- }
case WikiSecurityEvent.GROUP_REMOVE:
- {
- Group group = (Group)e.getTarget();
- if ( m_subject.getPrincipals().contains( group.getPrincipal() ) )
- {
- m_subject.getPrincipals().remove( group.getPrincipal() );
- }
+ final Group group = (Group)e.getTarget();
+ m_subject.getPrincipals().remove( group.getPrincipal() );
break;
- }
case WikiSecurityEvent.GROUP_CLEAR_GROUPS:
- {
m_subject.getPrincipals().removeAll( m_subject.getPrincipals( GroupPrincipal.class ) );
break;
- }
case WikiSecurityEvent.LOGIN_INITIATED:
- {
// Do nothing
break;
- }
case WikiSecurityEvent.PRINCIPAL_ADD:
- {
- WikiSession target = (WikiSession)e.getTarget();
- if ( this.equals( target ) && m_status.equals(AUTHENTICATED) )
- {
- Set<Principal> principals = m_subject.getPrincipals();
- principals.add( (Principal)e.getPrincipal());
+ final WikiSession targetPA = (WikiSession)e.getTarget();
+ if ( this.equals( targetPA ) && m_status.equals(AUTHENTICATED) ) {
+ final Set<Principal> principals = m_subject.getPrincipals();
+ principals.add( ( Principal )e.getPrincipal() );
}
break;
- }
case WikiSecurityEvent.LOGIN_ANONYMOUS:
- {
- WikiSession target = (WikiSession)e.getTarget();
- if ( this.equals( target ) )
- {
+ final WikiSession targetLAN = (WikiSession)e.getTarget();
+ if( this.equals( targetLAN ) ) {
m_status = ANONYMOUS;
// Set the login/user principals and login status
- Set<Principal> principals = m_subject.getPrincipals();
+ final Set<Principal> principals = m_subject.getPrincipals();
m_loginPrincipal = (Principal)e.getPrincipal();
m_userPrincipal = m_loginPrincipal;
@@ -510,16 +433,13 @@ public final class WikiSession implements WikiEventListener
principals.add( Role.ANONYMOUS );
}
break;
- }
case WikiSecurityEvent.LOGIN_ASSERTED:
- {
- WikiSession target = (WikiSession)e.getTarget();
- if ( this.equals( target ) )
- {
+ final WikiSession targetLAS = (WikiSession)e.getTarget();
+ if ( this.equals( targetLAS ) ) {
m_status = ASSERTED;
// Set the login/user principals and login status
- Set<Principal> principals = m_subject.getPrincipals();
+ final Set<Principal> principals = m_subject.getPrincipals();
m_loginPrincipal = (Principal)e.getPrincipal();
m_userPrincipal = m_loginPrincipal;
@@ -530,16 +450,13 @@ public final class WikiSession implements WikiEventListener
principals.add( Role.ASSERTED );
}
break;
- }
case WikiSecurityEvent.LOGIN_AUTHENTICATED:
- {
- WikiSession target = (WikiSession)e.getTarget();
- if ( this.equals( target ) )
- {
+ final WikiSession targetLAU = (WikiSession)e.getTarget();
+ if ( this.equals( targetLAU ) ) {
m_status = AUTHENTICATED;
// Set the login/user principals and login status
- Set<Principal> principals = m_subject.getPrincipals();
+ final Set<Principal> principals = m_subject.getPrincipals();
m_loginPrincipal = (Principal)e.getPrincipal();
m_userPrincipal = m_loginPrincipal;
@@ -554,32 +471,25 @@ public final class WikiSession implements WikiEventListener
injectGroupPrincipals(); // Inject group principals
}
break;
- }
case WikiSecurityEvent.PROFILE_SAVE:
- {
- WikiSession source = e.getSrc();
- if ( this.equals( source ) )
- {
+ final WikiSession sourcePS = e.getSrc();
+ if ( this.equals( sourcePS ) ) {
injectUserProfilePrincipals(); // Add principals for the user profile
injectGroupPrincipals(); // Inject group principals
}
break;
- }
case WikiSecurityEvent.PROFILE_NAME_CHANGED:
- {
// Refresh user principals based on new user profile
- WikiSession source = e.getSrc();
- if ( this.equals( source ) && m_status.equals(AUTHENTICATED) )
- {
+ final WikiSession sourcePNC = e.getSrc();
+ if ( this.equals( sourcePNC ) && m_status.equals(AUTHENTICATED) ) {
// To prepare for refresh, set the new full name as the primary principal
- UserProfile[] profiles = (UserProfile[])e.getTarget();
- UserProfile newProfile = profiles[1];
- if ( newProfile.getFullname() == null )
- {
+ final UserProfile[] profiles = (UserProfile[])e.getTarget();
+ final UserProfile newProfile = profiles[1];
+ if ( newProfile.getFullname() == null ) {
throw new IllegalStateException( "User profile FullName cannot be null." );
}
- Set<Principal> principals = m_subject.getPrincipals();
+ final Set<Principal> principals = m_subject.getPrincipals();
m_loginPrincipal = new WikiPrincipal( newProfile.getLoginName() );
// Add the login principal to the Subject, and set the built-in roles
@@ -593,24 +503,18 @@ public final class WikiSession implements WikiEventListener
injectGroupPrincipals(); // Inject group principals
}
break;
- }
- //
// No action, if the event is not recognized.
- //
- default:
- break;
+ default: break;
}
}
}
}
/**
- * Invalidates the WikiSession and resets its Subject's
- * Principals to the equivalent of a "guest session".
+ * Invalidates the WikiSession and resets its Subject's Principals to the equivalent of a "guest session".
*/
- public void invalidate()
- {
+ public void invalidate() {
m_subject.getPrincipals().clear();
m_subject.getPrincipals().add( WikiPrincipal.GUEST );
m_subject.getPrincipals().add( Role.ANONYMOUS );
@@ -620,81 +524,62 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Injects GroupPrincipal objects into the user's Principal set based on the
- * groups the user belongs to. For Groups, the algorithm first calls the
- * {@link GroupManager#getRoles()} to obtain the array of GroupPrincipals
- * the authorizer knows about. Then, the method
- * {@link GroupManager#isUserInRole(WikiSession, Principal)} is called for
- * each Principal. If the user is a member of the group, an equivalent
- * GroupPrincipal is injected into the user's principal set. Existing
- * GroupPrincipals are flushed and replaced. This method should generally be
- * called after a user's {@link org.apache.wiki.auth.user.UserProfile} is
- * saved. If the wiki session is null, or there is no matching user profile,
- * the method returns silently.
+ * Injects GroupPrincipal objects into the user's Principal set based on the groups the user belongs to. For Groups, the algorithm
+ * first calls the {@link GroupManager#getRoles()} to obtain the array of GroupPrincipals the authorizer knows about. Then, the
+ * method {@link GroupManager#isUserInRole(WikiSession, Principal)} is called for each Principal. If the user is a member of the
+ * group, an equivalent GroupPrincipal is injected into the user's principal set. Existing GroupPrincipals are flushed and replaced.
+ * This method should generally be called after a user's {@link org.apache.wiki.auth.user.UserProfile} is saved. If the wiki session
+ * is null, or there is no matching user profile, the method returns silently.
*/
- protected void injectGroupPrincipals()
- {
+ protected void injectGroupPrincipals() {
// Flush the existing GroupPrincipals
m_subject.getPrincipals().removeAll( m_subject.getPrincipals(GroupPrincipal.class) );
// Get the GroupManager and test for each Group
- GroupManager manager = m_engine.getGroupManager();
- for ( Principal group : manager.getRoles() )
- {
- if ( manager.isUserInRole( this, group ) )
- {
+ final GroupManager manager = m_engine.getGroupManager();
+ for( final Principal group : manager.getRoles() ) {
+ if ( manager.isUserInRole( this, group ) ) {
m_subject.getPrincipals().add( group );
}
}
}
/**
- * Adds Principal objects to the Subject that correspond to the
- * logged-in user's profile attributes for the wiki name, full name
- * and login name. These Principals will be WikiPrincipals, and they
- * will replace all other WikiPrincipals in the Subject. <em>Note:
+ * Adds Principal objects to the Subject that correspond to the logged-in user's profile attributes for the wiki name, full name
+ * and login name. These Principals will be WikiPrincipals, and they will replace all other WikiPrincipals in the Subject. <em>Note:
* this method is never called during anonymous or asserted sessions.</em>
*/
- protected void injectUserProfilePrincipals()
- {
+ protected void injectUserProfilePrincipals() {
// Search for the user profile
- String searchId = m_loginPrincipal.getName();
- if ( searchId == null )
- {
+ final String searchId = m_loginPrincipal.getName();
+ if ( searchId == null ) {
// Oh dear, this wasn't an authenticated user after all
log.info("Refresh principals failed because WikiSession had no user Principal; maybe not logged in?");
return;
}
// Look up the user and go get the new Principals
- UserDatabase database = m_engine.getUserManager().getUserDatabase();
- if ( database == null )
- {
+ final UserDatabase database = m_engine.getUserManager().getUserDatabase();
+ if( database == null ) {
throw new IllegalStateException( "User database cannot be null." );
}
- try
- {
- UserProfile profile = database.find( searchId );
- Principal[] principals = database.getPrincipals( profile.getLoginName() );
- for ( Principal principal : principals )
- {
+ try {
+ final UserProfile profile = database.find( searchId );
+ final Principal[] principals = database.getPrincipals( profile.getLoginName() );
+ for( final Principal principal : principals ) {
// Add the Principal to the Subject
m_subject.getPrincipals().add( principal );
// Set the user principal if needed; we prefer FullName, but the WikiName will also work
- boolean isFullNamePrincipal = ( principal instanceof WikiPrincipal && ((WikiPrincipal)principal).getType() == WikiPrincipal.FULL_NAME );
- if ( isFullNamePrincipal )
- {
+ final boolean isFullNamePrincipal = ( principal instanceof WikiPrincipal &&
+ ( ( WikiPrincipal )principal ).getType().equals( WikiPrincipal.FULL_NAME ) );
+ if ( isFullNamePrincipal ) {
m_userPrincipal = principal;
- }
- else if ( !( m_userPrincipal instanceof WikiPrincipal ) )
- {
+ } else if ( !( m_userPrincipal instanceof WikiPrincipal ) ) {
m_userPrincipal = principal;
}
}
- }
- catch ( NoSuchPrincipalException e )
- {
+ } catch ( final NoSuchPrincipalException e ) {
// We will get here if the user has a principal but not a profile
// For example, it's a container-managed user who hasn't set up a profile yet
log.warn("User profile '" + searchId + "' not found. This is normal for container-auth users who haven't set up a profile yet.");
@@ -710,70 +595,59 @@ public final class WikiSession implements WikiEventListener
* </ul>
* @return the user's session status
*/
- public String getStatus()
- {
+ public String getStatus() {
return m_status;
}
/**
- * <p>Static factory method that returns the WikiSession object associated with
- * the current HTTP request. This method looks up the associated HttpSession
- * in an internal WeakHashMap and attempts to retrieve the WikiSession. If
- * not found, one is created. This method is guaranteed to always return a
- * WikiSession, although the authentication status is unpredictable until
- * the user attempts to log in. If the servlet request parameter is
- * <code>null</code>, a synthetic {@link #guestSession(WikiEngine)}is returned.</p>
- * <p>When a session is created, this method attaches a WikiEventListener
- * to the GroupManager so that changes to groups are detected automatically.</p>
+ * <p>Static factory method that returns the WikiSession object associated with the current HTTP request. This method looks up
+ * the associated HttpSession in an internal WeakHashMap and attempts to retrieve the WikiSession. If not found, one is created.
+ * This method is guaranteed to always return a WikiSession, although the authentication status is unpredictable until the user
+ * attempts to log in. If the servlet request parameter is <code>null</code>, a synthetic {@link #guestSession(WikiEngine)} is
+ * returned.</p>
+ * <p>When a session is created, this method attaches a WikiEventListener to the GroupManager so that changes to groups are detected
+ * automatically.</p>
+ *
* @param engine the wiki engine
* @param request the servlet request object
* @return the existing (or newly created) wiki session
*/
- public static WikiSession getWikiSession( WikiEngine engine, HttpServletRequest request )
- {
- // If request is null, return guest session
- if ( request == null )
- {
- if ( log.isDebugEnabled() )
- {
+ public static WikiSession getWikiSession( final WikiEngine engine, final HttpServletRequest request ) {
+ if ( request == null ) {
+ if ( log.isDebugEnabled() ) {
log.debug( "Looking up WikiSession for NULL HttpRequest: returning guestSession()" );
}
return staticGuestSession( engine );
}
- // Look for a WikiSession associated with the user's Http Session
- // and create one if it isn't there yet.
- HttpSession session = request.getSession();
- SessionMonitor monitor = SessionMonitor.getInstance( engine );
- WikiSession wikiSession = monitor.find( session );
+ // Look for a WikiSession associated with the user's Http Session and create one if it isn't there yet.
+ final HttpSession session = request.getSession();
+ final SessionMonitor monitor = SessionMonitor.getInstance( engine );
+ final WikiSession wikiSession = monitor.find( session );
// Attach reference to wiki engine
wikiSession.m_engine = engine;
-
wikiSession.m_cachedLocale = request.getLocale();
-
return wikiSession;
}
/**
- * Static factory method that creates a new "guest" session containing a single
- * user Principal {@link org.apache.wiki.auth.WikiPrincipal#GUEST},
- * plus the role principals {@link Role#ALL} and
- * {@link Role#ANONYMOUS}. This method also adds the session as a listener
- * for GroupManager, AuthenticationManager and UserManager events.
+ * Static factory method that creates a new "guest" session containing a single user Principal
+ * {@link org.apache.wiki.auth.WikiPrincipal#GUEST}, plus the role principals {@link Role#ALL} and {@link Role#ANONYMOUS}. This
+ * method also adds the session as a listener for GroupManager, AuthenticationManager and UserManager events.
+ *
* @param engine the wiki engine
* @return the guest wiki session
*/
- public static WikiSession guestSession( WikiEngine engine )
- {
- WikiSession session = new WikiSession();
+ public static WikiSession guestSession( final WikiEngine engine ) {
+ final WikiSession session = new WikiSession();
session.m_engine = engine;
session.invalidate();
// Add the session as listener for GroupManager, AuthManager, UserManager events
- GroupManager groupMgr = engine.getGroupManager();
- AuthenticationManager authMgr = engine.getAuthenticationManager();
- UserManager userMgr = engine.getUserManager();
+ final GroupManager groupMgr = engine.getGroupManager();
+ final AuthenticationManager authMgr = engine.getAuthenticationManager();
+ final UserManager userMgr = engine.getUserManager();
groupMgr.addWikiEventListener( session );
authMgr.addWikiEventListener( session );
userMgr.addWikiEventListener( session );
@@ -782,25 +656,17 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Returns a static guest session, which is available for this
- * thread only. This guest session is used internally whenever
- * there is no HttpServletRequest involved, but the request is
- * done e.g. when embedding JSPWiki code.
+ * Returns a static guest session, which is available for this thread only. This guest session is used internally whenever
+ * there is no HttpServletRequest involved, but the request is done e.g. when embedding JSPWiki code.
*
* @param engine WikiEngine for this session
- * @return A static WikiSession which is shared by all in this
- * same Thread.
+ * @return A static WikiSession which is shared by all in this same Thread.
*/
// FIXME: Should really use WeakReferences to clean away unused sessions.
-
- private static WikiSession staticGuestSession( WikiEngine engine )
- {
+ private static WikiSession staticGuestSession( final WikiEngine engine ) {
WikiSession session = c_guestSession.get();
-
- if( session == null )
- {
+ if( session == null ) {
session = guestSession( engine );
-
c_guestSession.set( session );
}
@@ -808,47 +674,42 @@ public final class WikiSession implements WikiEventListener
}
/**
- * Returns the total number of active wiki sessions for a
- * particular wiki. This method delegates to the wiki's
+ * Returns the total number of active wiki sessions for a particular wiki. This method delegates to the wiki's
* {@link SessionMonitor#sessions()} method.
+ *
* @param engine the wiki session
* @return the number of sessions
*/
- public static int sessions( WikiEngine engine )
- {
- SessionMonitor monitor = SessionMonitor.getInstance( engine );
+ public static int sessions( final WikiEngine engine ) {
+ final SessionMonitor monitor = SessionMonitor.getInstance( engine );
return monitor.sessions();
}
/**
- * Returns Principals representing the current users known
- * to a particular wiki. Each Principal will correspond to the
- * value returned by each WikiSession's {@link #getUserPrincipal()}
- * method. This method delegates to {@link SessionMonitor#userPrincipals()}.
+ * Returns Principals representing the current users known to a particular wiki. Each Principal will correspond to the
+ * value returned by each WikiSession's {@link #getUserPrincipal()} method. This method delegates to
+ * {@link SessionMonitor#userPrincipals()}.
+ *
* @param engine the wiki engine
* @return an array of Principal objects, sorted by name
*/
- public static Principal[] userPrincipals( WikiEngine engine )
- {
- SessionMonitor monitor = SessionMonitor.getInstance( engine );
+ public static Principal[] userPrincipals( final WikiEngine engine ) {
+ final SessionMonitor monitor = SessionMonitor.getInstance( engine );
return monitor.userPrincipals();
}
/**
* Wrapper for
* {@link javax.security.auth.Subject#doAsPrivileged(Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext)}
- * that executes an action with the privileges posssessed by a
- * WikiSession's Subject. The action executes with a <code>null</code>
- * AccessControlContext, which has the effect of running it "cleanly"
- * without the AccessControlContexts of the caller.
+ * that executes an action with the privileges posssessed by a WikiSession's Subject. The action executes with a <code>null</code>
+ * AccessControlContext, which has the effect of running it "cleanly" without the AccessControlContexts of the caller.
+ *
* @param session the wiki session
* @param action the privileged action
* @return the result of the privileged action; may be <code>null</code>
- * @throws java.security.AccessControlException if the action is not permitted
- * by the security policy
+ * @throws java.security.AccessControlException if the action is not permitted by the security policy
*/
- public static Object doPrivileged( WikiSession session, PrivilegedAction<?> action ) throws AccessControlException
- {
+ public static Object doPrivileged( final WikiSession session, final PrivilegedAction<?> action ) throws AccessControlException {
return Subject.doAsPrivileged( session.m_subject, action, null );
}
@@ -858,39 +719,29 @@ public final class WikiSession implements WikiEventListener
* @param name the address to test
* @return the result
*/
- protected static boolean isIPV4Address( String name )
- {
- if ( name.charAt( 0 ) == DOT || name.charAt( name.length() - 1 ) == DOT )
- {
+ protected static boolean isIPV4Address( final String name ) {
+ if ( name.charAt( 0 ) == DOT || name.charAt( name.length() - 1 ) == DOT ) {
return false;
}
- int[] addr = new int[]
+ final int[] addr = new int[]
{ 0, 0, 0, 0 };
int currentOctet = 0;
- for( int i = 0; i < name.length(); i++ )
- {
- int ch = name.charAt( i );
- boolean isDigit = ch >= ONE && ch <= NINE;
- boolean isDot = ch == DOT;
- if ( !isDigit && !isDot )
- {
+ for( int i = 0; i < name.length(); i++ ) {
+ final int ch = name.charAt( i );
+ final boolean isDigit = ch >= ONE && ch <= NINE;
+ final boolean isDot = ch == DOT;
+ if ( !isDigit && !isDot ) {
return false;
}
- if ( isDigit )
- {
+ if( isDigit ) {
addr[currentOctet] = 10 * addr[currentOctet] + ( ch - ONE );
- if ( addr[currentOctet] > 255 )
- {
+ if ( addr[currentOctet] > 255 ) {
return false;
}
- }
- else if ( name.charAt( i - 1 ) == DOT )
- {
+ } else if( name.charAt( i - 1 ) == DOT ) {
return false;
- }
- else
- {
+ } else {
currentOctet++;
}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
index 8258560..44a8ad7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Counter.java
@@ -18,13 +18,13 @@
*/
package org.apache.wiki.plugin;
-import java.util.Map;
-
import org.apache.wiki.WikiContext;
import org.apache.wiki.api.exceptions.PluginException;
import org.apache.wiki.api.plugin.WikiPlugin;
import org.apache.wiki.util.TextUtil;
+import java.util.Map;
+
/**
* Provides a page-specific counter, it is reset every time a page is rendered, so it is not usable as a hitcounter.
* <br>Stores a variable in the WikiContext called "counter", with the name of the optionally specified variable "name".
@@ -39,9 +39,7 @@ import org.apache.wiki.util.TextUtil;
*
* @since 1.9.30
*/
-public class Counter
- implements WikiPlugin
-{
+public class Counter implements WikiPlugin {
// private static Logger log = Logger.getLogger( Counter.class );
/** Parameter name for setting the name. Value is <tt>{@value}</tt>. */
@@ -59,56 +57,32 @@ public class Counter
/**
* {@inheritDoc}
*/
- public String execute( WikiContext context, Map<String, String> params )
- throws PluginException
- {
- //
- // First, determine which kind of name we use to store in
- // the WikiContext.
- //
+ public String execute( final WikiContext context, final Map< String, String > params ) throws PluginException {
+ // First, determine which kind of name we use to store in the WikiContext.
String countername = params.get( PARAM_NAME);
- if( countername == null )
- {
+ if( countername == null ) {
countername = DEFAULT_NAME;
- }
- else
- {
+ } else {
countername = DEFAULT_NAME+"-"+countername;
}
- //
// Fetch the old value
- //
Integer val = (Integer)context.getVariable( countername );
-
- if( val == null )
- {
+ if( val == null ) {
val = 0;
}
- //
// Check if we need to reset this
- //
-
- String start = params.get( PARAM_START );
-
- if( start != null )
- {
+ final String start = params.get( PARAM_START );
+ if( start != null ) {
val = Integer.parseInt( start );
- }
- else
- {
- //
+ } else {
// Determine how much to increment
- //
- String incrementObj = params.get( PARAM_INCREMENT );
-
+ final String incrementObj = params.get( PARAM_INCREMENT );
int increment = DEFAULT_INCREMENT;
-
- if (incrementObj != null)
- {
- increment = ( Integer.valueOf( incrementObj ) ).intValue();
+ if( incrementObj != null ) {
+ increment = Integer.parseInt( incrementObj );
}
val = val + increment;
@@ -116,20 +90,14 @@ public class Counter
context.setVariable( countername, val );
- //
// check if we want to hide the result (just count, don't show result on the page
- //
- String showObj = params.get(PARAM_SHOW_RESULT);
-
+ final String showObj = params.get(PARAM_SHOW_RESULT);
boolean show = DEFAULT_SHOW_RESULT;
-
- if( showObj != null )
- {
+ if( showObj != null ) {
show = TextUtil.isPositive( showObj );
}
- if( show )
- {
+ if( show ) {
return val.toString();
}