Author: ajaquith
Date: Tue Apr  7 11:53:11 2009
New Revision: 762712

URL: http://svn.apache.org/viewvc?rev=762712&view=rev
Log:
As a result of the additional callback support for LoginModules used with 
integrated authentication, AuthenticationManager gains a new method, 
login(WikiSession,HttpServletRequest,String,String). Please use this instead of 
login(WikiSession,String,String), which is now deprecated. This change has been 
forward-ported to the (3.0) trunk.

Modified:
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/AuthenticationManager.java
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/DefaultUserProfile.java
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/UserProfile.java
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/xmlrpc/MetaWeblogHandler.java
    incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Login.jsp
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/TestEngine.java
    
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/WikiSessionTest.java

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/AuthenticationManager.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/AuthenticationManager.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/AuthenticationManager.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/AuthenticationManager.java
 Tue Apr  7 11:53:11 2009
@@ -195,7 +195,7 @@
         catch (ClassNotFoundException e)
         {
             e.printStackTrace();
-            throw new WikiException(e.getMessage());
+            throw new WikiException( "Could not instantiate LoginModule 
class.", e );
         }
         
         // Initialize the LoginModule options
@@ -330,6 +330,25 @@
     
     /**
      * Attempts to perform a WikiSession login for the given username/password
+     * combination using JSPWiki's custom authentication mode. This method is 
identical to
+     * {...@link #login(WikiSession, String, String)}, except that user's HTTP 
request is not made available
+     * to LoginModules via the {...@link 
com.ecyrd.jspwiki.auth.login.HttpRequestCallback}.
+     * @param session the current wiki session; may not be <code>null</code>.
+     * @param username The user name. This is a login name, not a WikiName. In
+     *            most cases they are the same, but in some cases, they might
+     *            not be.
+     * @param password the password
+     * @return true, if the username/password is valid
+     * @throws com.ecyrd.jspwiki.auth.WikiSecurityException if the Authorizer 
or UserManager cannot be obtained
+     * @deprecated use {...@link #login(WikiSession, HttpServletRequest, 
String, String)} instead
+     */
+    public final boolean login( WikiSession session, String username, String 
password ) throws WikiSecurityException
+    {
+        return login( session, null, username, password );
+    }
+    
+    /**
+     * Attempts to perform a WikiSession login for the given username/password
      * combination using JSPWiki's custom authentication mode. In order to log 
in,
      * the JAAS LoginModule supplied by the WikiEngine property {...@link 
#PROP_LOGIN_MODULE}
      * will be instantiated, and its
@@ -338,7 +357,9 @@
      * class will be used. When the LoginModule's <code>initialize</code> 
method is invoked,
      * an options Map populated by properties keys prefixed by {...@link 
#PREFIX_LOGIN_MODULE_OPTIONS}
      * will be passed as a parameter.
-     * @param session the current wiki session; may not be null.
+     * @param session the current wiki session; may not be <code>null</code>.
+     * @param request the user's HTTP request. This parameter may be 
<code>null</code>, but the configured
+     * LoginModule will not have access to the HTTP request in this case.
      * @param username The user name. This is a login name, not a WikiName. In
      *            most cases they are the same, but in some cases, they might
      *            not be.
@@ -346,7 +367,7 @@
      * @return true, if the username/password is valid
      * @throws com.ecyrd.jspwiki.auth.WikiSecurityException if the Authorizer 
or UserManager cannot be obtained
      */
-    public final boolean login( WikiSession session, String username, String 
password ) throws WikiSecurityException
+    public final boolean login( WikiSession session, HttpServletRequest 
request, String username, String password ) throws WikiSecurityException
     {
         if ( session == null )
         {
@@ -360,9 +381,9 @@
             delayLogin(username);
         }
         
-        UserManager userMgr = m_engine.getUserManager();
         CallbackHandler handler = new WikiCallbackHandler(
-                userMgr.getUserDatabase(),
+                m_engine,
+                null,
                 username,
                 password );
         
@@ -530,11 +551,11 @@
         }
         catch (InstantiationException e)
         {
-            throw new WikiSecurityException(e.getMessage());
+            throw new WikiSecurityException(e.getMessage(), e );
         }
         catch (IllegalAccessException e)
         {
-            throw new WikiSecurityException(e.getMessage());
+            throw new WikiSecurityException(e.getMessage(), e );
         }
 
         // Initialize the LoginModule

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/DefaultUserProfile.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/DefaultUserProfile.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/DefaultUserProfile.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/DefaultUserProfile.java
 Tue Apr  7 11:53:11 2009
@@ -232,7 +232,7 @@
     /**
      * Sets the name by which the user logs in. The login name is used as the
      * username for custom authentication (see
-     * {...@link 
com.ecyrd.jspwiki.auth.AuthenticationManager#login(WikiSession, String, 
String)}).
+     * {...@link 
com.ecyrd.jspwiki.auth.AuthenticationManager#login(WikiSession,HttpServletRequest,
 String, String)}).
      * The login name is typically a short name ("jannej"). In contrast, the
      * wiki name is typically of type FirstnameLastName ("JanneJalkanen").
      * @param name the login name

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/UserProfile.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/UserProfile.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/UserProfile.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/auth/user/UserProfile.java
 Tue Apr  7 11:53:11 2009
@@ -164,7 +164,7 @@
     /**
      * Sets the name by which the user logs in. The login name is used as the
      * username for custom authentication (see
-     * {...@link 
com.ecyrd.jspwiki.auth.AuthenticationManager#login(WikiSession, String, 
String)},
+     * {...@link 
com.ecyrd.jspwiki.auth.AuthenticationManager#login(WikiSession,HttpServletRequest,
 String, String)},
      * {...@link com.ecyrd.jspwiki.auth.login.UserDatabaseLoginModule}). The 
login
      * name is typically a short name ("jannej"). In contrast, the wiki name is
      * typically of type FirstnameLastName ("JanneJalkanen").

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/xmlrpc/MetaWeblogHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/xmlrpc/MetaWeblogHandler.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/xmlrpc/MetaWeblogHandler.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/com/ecyrd/jspwiki/xmlrpc/MetaWeblogHandler.java
 Tue Apr  7 11:53:11 2009
@@ -87,7 +87,7 @@
             AuthenticationManager amm = 
m_context.getEngine().getAuthenticationManager();
             AuthorizationManager mgr = 
m_context.getEngine().getAuthorizationManager();
         
-            if( amm.login( m_context.getWikiSession(), username, password ) )
+            if( amm.login( m_context.getWikiSession(), 
m_context.getHttpRequest(), username, password ) )
             {
                 if( !mgr.checkPermission( m_context.getWikiSession(), 
PermissionFactory.getPagePermission( page, permission ) ))
                 {

Modified: incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Login.jsp
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Login.jsp?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Login.jsp 
(original)
+++ incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/src/webdocs/Login.jsp Tue Apr 
 7 11:53:11 2009
@@ -99,7 +99,7 @@
             log.debug( "Attempting to authenticate user " + uid );
 
             // Log the user in!
-            if ( mgr.login( wikiSession, uid, passwd ) )
+            if ( mgr.login( wikiSession, request, uid, passwd ) )
             {
                 log.info( "Successfully authenticated user " + uid + " (custom 
auth)" );
             }
@@ -138,7 +138,7 @@
     // If user logged in, set the user cookie with the wiki principal's name.
     // redirect to wherever we're supposed to go. If login.jsp
     // was called without parameters, this will be the front page. Otherwise,
-    // there's probably a 'page' parameter telling us where to go.
+    // there's probably a 'redirect' parameter telling us where to go.
 
     if( wikiSession.isAuthenticated() )
     {

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/TestEngine.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/TestEngine.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/TestEngine.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/TestEngine.java
 Tue Apr  7 11:53:11 2009
@@ -43,7 +43,7 @@
             // Set up long-running admin session
             HttpServletRequest request = newHttpRequest();
             m_adminWikiSession = WikiSession.getWikiSession( this, request );
-            this.getAuthenticationManager().login( m_adminWikiSession,
+            this.getAuthenticationManager().login( m_adminWikiSession, request,
                                                    Users.ADMIN,
                                                    Users.ADMIN_PASS );
         }
@@ -79,7 +79,7 @@
             // Set up a test Janne session
             HttpServletRequest request = newHttpRequest();
             m_janneWikiSession = WikiSession.getWikiSession( this, request );
-            this.getAuthenticationManager().login( m_janneWikiSession,
+            this.getAuthenticationManager().login( m_janneWikiSession, request,
                     Users.JANNE,
                     Users.JANNE_PASS );
         }
@@ -298,7 +298,7 @@
         // Build new request and associate our admin session
         MockHttpServletRequest request = newHttpRequest();
         WikiSession wikiSession = SessionMonitor.getInstance( this ).find( 
request.getSession() );
-        this.getAuthenticationManager().login( wikiSession,
+        this.getAuthenticationManager().login( wikiSession, request,
                 Users.ADMIN,
                 Users.ADMIN_PASS );
 
@@ -314,7 +314,7 @@
         // Build new request and associate our Janne session
         MockHttpServletRequest request = newHttpRequest();
         WikiSession wikiSession = SessionMonitor.getInstance( this ).find( 
request.getSession() );
-        this.getAuthenticationManager().login( wikiSession,
+        this.getAuthenticationManager().login( wikiSession, request,
                 Users.JANNE,
                 Users.JANNE_PASS );
 

Modified: 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/WikiSessionTest.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/WikiSessionTest.java?rev=762712&r1=762711&r2=762712&view=diff
==============================================================================
--- 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/WikiSessionTest.java
 (original)
+++ 
incubator/jspwiki/branches/JSPWIKI_2_8_BRANCH/tests/com/ecyrd/jspwiki/WikiSessionTest.java
 Tue Apr  7 11:53:11 2009
@@ -280,7 +280,7 @@
         
         // Log in the user with credentials
         WikiSession session = WikiSession.getWikiSession( engine, request );
-        engine.getAuthenticationManager().login( session, id, password );
+        engine.getAuthenticationManager().login( session, request, id, 
password );
         
         // Make sure the user is actually authenticated
         if ( !session.isAuthenticated() )


Reply via email to