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 <[email protected]> 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; } + }
