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/02/24 16:53:05 UTC
[jspwiki] 23/38: JSPWIKI-120: make callback handlers use Engine
instead of WikiEngine
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 db20d0e9baf513236e0832b9218c2f68b0b37c72
Author: juanpablo <ju...@apache.org>
AuthorDate: Fri Feb 21 17:31:22 2020 +0100
JSPWIKI-120: make callback handlers use Engine instead of WikiEngine
---
.../wiki/attachment/DefaultAttachmentManager.java | 3 +-
.../wiki/auth/DefaultAuthenticationManager.java | 11 ++-
.../auth/login/WebContainerCallbackHandler.java | 50 ++++++--------
.../wiki/auth/login/WikiCallbackHandler.java | 78 +++++++++-------------
.../apache/wiki/auth/login/WikiEngineCallback.java | 25 ++++---
5 files changed, 71 insertions(+), 96 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/attachment/DefaultAttachmentManager.java b/jspwiki-main/src/main/java/org/apache/wiki/attachment/DefaultAttachmentManager.java
index 688c3e0..4cf397c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/attachment/DefaultAttachmentManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/attachment/DefaultAttachmentManager.java
@@ -23,7 +23,6 @@ import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import org.apache.log4j.Logger;
import org.apache.wiki.WikiContext;
-import org.apache.wiki.WikiEngine;
import org.apache.wiki.WikiPage;
import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
@@ -106,7 +105,7 @@ public class DefaultAttachmentManager implements AttachmentManager {
final Class< ? > providerclass = ClassUtil.findClass( "org.apache.wiki.providers", classname );
m_provider = ( WikiAttachmentProvider )providerclass.newInstance();
- m_provider.initialize( m_engine.adapt( WikiEngine.class ), props );
+ m_provider.initialize( m_engine, props );
} catch( final ClassNotFoundException e ) {
log.error( "Attachment provider class not found",e);
} catch( final InstantiationException e ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
index e4566b9..ce76804 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthenticationManager.java
@@ -19,7 +19,6 @@
package org.apache.wiki.auth;
import org.apache.log4j.Logger;
-import org.apache.wiki.WikiEngine;
import org.apache.wiki.WikiSession;
import org.apache.wiki.api.core.Engine;
import org.apache.wiki.api.exceptions.WikiException;
@@ -154,7 +153,7 @@ public class DefaultAuthenticationManager implements AuthenticationManager {
@Override
public boolean login( final HttpServletRequest request ) throws WikiSecurityException {
final HttpSession httpSession = request.getSession();
- final WikiSession session = SessionMonitor.getInstance( m_engine.adapt( WikiEngine.class ) ).find( httpSession );
+ final WikiSession session = SessionMonitor.getInstance( m_engine ).find( httpSession );
final AuthenticationManager authenticationMgr = m_engine.getManager( AuthenticationManager.class );
final AuthorizationManager authorizationMgr = m_engine.getManager( AuthorizationManager.class );
CallbackHandler handler = null;
@@ -163,7 +162,7 @@ public class DefaultAuthenticationManager implements AuthenticationManager {
// If user not authenticated, check if container logged them in, or if there's an authentication cookie
if ( !session.isAuthenticated() ) {
// Create a callback handler
- handler = new WebContainerCallbackHandler( m_engine.adapt( WikiEngine.class ), request );
+ handler = new WebContainerCallbackHandler( m_engine, request );
// Execute the container login module, then (if that fails) the cookie auth module
Set< Principal > principals = authenticationMgr.doJAASLogin( WebContainerLoginModule.class, handler, options );
@@ -220,7 +219,7 @@ public class DefaultAuthenticationManager implements AuthenticationManager {
delayLogin( username );
}
- final CallbackHandler handler = new WikiCallbackHandler( m_engine.adapt( WikiEngine.class ), null, username, password );
+ final CallbackHandler handler = new WikiCallbackHandler( m_engine, null, username, password );
// Execute the user's specified login module
final Set< Principal > principals = doJAASLogin( m_loginModuleClass, handler, m_loginModuleOptions );
@@ -277,12 +276,12 @@ public class DefaultAuthenticationManager implements AuthenticationManager {
log.debug( "Invalidating WikiSession for session ID=" + sid );
}
// Retrieve the associated WikiSession and clear the Principal set
- final WikiSession wikiSession = WikiSession.getWikiSession( m_engine.adapt( WikiEngine.class ), request );
+ final WikiSession wikiSession = WikiSession.getWikiSession( m_engine, request );
final Principal originalPrincipal = wikiSession.getLoginPrincipal();
wikiSession.invalidate();
// Remove the wikiSession from the WikiSession cache
- WikiSession.removeWikiSession( m_engine.adapt( WikiEngine.class ), request );
+ WikiSession.removeWikiSession( m_engine, request );
// We need to flush the HTTP session too
if ( session != null ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WebContainerCallbackHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WebContainerCallbackHandler.java
index 23ed9ba..4836b58 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WebContainerCallbackHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WebContainerCallbackHandler.java
@@ -18,35 +18,34 @@
*/
package org.apache.wiki.auth.login;
-import java.io.IOException;
+import org.apache.wiki.api.core.Engine;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
-import org.apache.wiki.WikiEngine;
/**
* Handles logins made from within JSPWiki.
- * @see org.apache.wiki.WikiSession#getWikiSession(WikiEngine,HttpServletRequest)
+ *
+ * @see org.apache.wiki.WikiSession#getWikiSession(Engine,HttpServletRequest)
* @since 2.3
*/
-public final class WebContainerCallbackHandler implements CallbackHandler
-{
- private final HttpServletRequest m_request;
+public final class WebContainerCallbackHandler implements CallbackHandler {
- private final WikiEngine m_engine;
+ private final HttpServletRequest m_request;
+ private final Engine m_engine;
/**
- * Create a new handler.
- *
- * @param engine The WikiEngine
- * @param request The request to look into
+ * Create a new handler.
+ *
+ * @param engine The WikiEngine
+ * @param request The request to look into
*/
- public WebContainerCallbackHandler( WikiEngine engine, HttpServletRequest request )
- {
- m_engine = engine;
+ public WebContainerCallbackHandler( final Engine engine, final HttpServletRequest request ) {
+ m_engine = engine;
m_request = request;
}
@@ -55,21 +54,14 @@ public final class WebContainerCallbackHandler implements CallbackHandler
*
* {@inheritDoc}
*/
- public void handle( Callback[] callbacks ) throws IOException, UnsupportedCallbackException
- {
- for( int i = 0; i < callbacks.length; i++ )
- {
- Callback callback = callbacks[i];
- if ( callback instanceof HttpRequestCallback )
- {
- ( (HttpRequestCallback) callback ).setRequest( m_request );
- }
- else if( callback instanceof WikiEngineCallback )
- {
- ( (WikiEngineCallback) callback ).setEngine( m_engine );
- }
- else
- {
+ @Override
+ public void handle( final Callback[] callbacks ) throws IOException, UnsupportedCallbackException {
+ for( final Callback callback : callbacks ) {
+ if( callback instanceof HttpRequestCallback ) {
+ ( ( HttpRequestCallback )callback ).setRequest( m_request );
+ } else if( callback instanceof WikiEngineCallback ) {
+ ( ( WikiEngineCallback )callback ).setEngine( m_engine );
+ } else {
throw new UnsupportedCallbackException( callback );
}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiCallbackHandler.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiCallbackHandler.java
index bcf469e..682ca99 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiCallbackHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiCallbackHandler.java
@@ -18,42 +18,42 @@
*/
package org.apache.wiki.auth.login;
-import java.io.IOException;
+import org.apache.wiki.api.core.Engine;
+import org.apache.wiki.auth.UserManager;
-import javax.security.auth.callback.*;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
-import org.apache.wiki.WikiEngine;
/**
- * Handles logins made from inside the wiki application, rather than via the web
- * container. This handler is instantiated in
+ * Handles logins made from inside the wiki application, rather than via the web container. This handler is instantiated in
* {@link org.apache.wiki.auth.AuthenticationManager#login(org.apache.wiki.WikiSession,HttpServletRequest, String, String)}.
- * If container-managed authentication is used, the
- * {@link WebContainerCallbackHandler}is used instead. This callback handler is
+ * If container-managed authentication is used, the {@link WebContainerCallbackHandler}is used instead. This callback handler is
* designed to be used with {@link UserDatabaseLoginModule}.
+ *
* @since 2.3
*/
-public class WikiCallbackHandler implements CallbackHandler
-{
- private final HttpServletRequest m_request;
+public class WikiCallbackHandler implements CallbackHandler {
- private final WikiEngine m_engine;
-
- private final String m_password;
-
- private final String m_username;
+ private final HttpServletRequest m_request;
+ private final Engine m_engine;
+ private final String m_password;
+ private final String m_username;
/**
* Create a new callback handler.
+ *
* @param engine the WikiEngine
- * @param request the user's HTTP request. If passed as <code>null</code>,
- * later requests for {@link HttpRequestCallback} will return an UnsupportedCallbackException
+ * @param request the user's HTTP request. If passed as <code>null</code>, later requests for {@link HttpRequestCallback} will return an UnsupportedCallbackException
* @param username the username
* @param password the password
*/
- public WikiCallbackHandler( WikiEngine engine, HttpServletRequest request, String username, String password )
- {
+ public WikiCallbackHandler( final Engine engine, final HttpServletRequest request, final String username, final String password ) {
m_request = request;
m_engine = engine;
m_username = username;
@@ -65,33 +65,19 @@ public class WikiCallbackHandler implements CallbackHandler
*
* {@inheritDoc}
*/
- public void handle( Callback[] callbacks ) throws IOException, UnsupportedCallbackException
- {
- for( int i = 0; i < callbacks.length; i++ )
- {
- Callback callback = callbacks[i];
- if ( callback instanceof HttpRequestCallback )
- {
- ( (HttpRequestCallback) callback ).setRequest( m_request );
- }
- else if( callback instanceof WikiEngineCallback )
- {
- ( (WikiEngineCallback) callback ).setEngine( m_engine );
- }
- else if ( callback instanceof UserDatabaseCallback )
- {
- ( (UserDatabaseCallback) callback ).setUserDatabase( m_engine.getUserManager().getUserDatabase() );
- }
- else if ( callback instanceof NameCallback )
- {
- ( (NameCallback) callback ).setName( m_username );
- }
- else if ( callback instanceof PasswordCallback )
- {
- ( (PasswordCallback) callback ).setPassword( m_password.toCharArray() );
- }
- else
- {
+ @Override public void handle( final Callback[] callbacks ) throws IOException, UnsupportedCallbackException {
+ for( final Callback callback : callbacks ) {
+ if( callback instanceof HttpRequestCallback ) {
+ ( ( HttpRequestCallback )callback ).setRequest( m_request );
+ } else if( callback instanceof WikiEngineCallback ) {
+ ( ( WikiEngineCallback )callback ).setEngine( m_engine );
+ } else if( callback instanceof UserDatabaseCallback ) {
+ ( ( UserDatabaseCallback )callback ).setUserDatabase( m_engine.getManager( UserManager.class ).getUserDatabase() );
+ } else if( callback instanceof NameCallback ) {
+ ( ( NameCallback )callback ).setName( m_username );
+ } else if( callback instanceof PasswordCallback ) {
+ ( ( PasswordCallback )callback ).setPassword( m_password.toCharArray() );
+ } else {
throw new UnsupportedCallbackException( callback );
}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiEngineCallback.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiEngineCallback.java
index 3fa57b4..e2e0ace 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiEngineCallback.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/login/WikiEngineCallback.java
@@ -18,38 +18,37 @@
*/
package org.apache.wiki.auth.login;
+import org.apache.wiki.api.core.Engine;
+
import javax.security.auth.callback.Callback;
-import org.apache.wiki.WikiEngine;
/**
- * Callback for requesting and supplying the WikiEngine object required by a
- * LoginModule. This Callback is used by LoginModules needing access to the
- * external authorizer or group manager.
+ * Callback for requesting and supplying the WikiEngine object required by a LoginModule. This Callback is used by LoginModules needing
+ * access to the external authorizer or group manager.
*
* @since 2.5
*/
-public class WikiEngineCallback implements Callback
-{
+public class WikiEngineCallback implements Callback {
- private WikiEngine m_engine;
+ private Engine m_engine;
/**
* Sets the engine object. CallbackHandler objects call this method.
+ *
* @param engine the engine
*/
- public void setEngine( WikiEngine engine )
- {
+ public void setEngine( final Engine engine ) {
m_engine = engine;
}
/**
- * Returns the engine. LoginModules call this method after a
- * CallbackHandler sets the engine.
+ * Returns the engine. LoginModules call this method after a CallbackHandler sets the engine.
+ *
* @return the engine
*/
- public WikiEngine getEngine()
- {
+ public Engine getEngine() {
return m_engine;
}
+
}