Return-Path: Delivered-To: apmail-portals-jetspeed-dev-archive@www.apache.org Received: (qmail 29049 invoked from network); 10 Feb 2006 19:49:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 Feb 2006 19:49:34 -0000 Received: (qmail 81167 invoked by uid 500); 10 Feb 2006 19:49:31 -0000 Delivered-To: apmail-portals-jetspeed-dev-archive@portals.apache.org Received: (qmail 81079 invoked by uid 500); 10 Feb 2006 19:49:30 -0000 Mailing-List: contact jetspeed-dev-help@portals.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Jetspeed Developers List" Delivered-To: mailing list jetspeed-dev@portals.apache.org Received: (qmail 81059 invoked by uid 99); 10 Feb 2006 19:49:30 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Feb 2006 11:49:30 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 10 Feb 2006 11:49:29 -0800 Received: (qmail 28741 invoked by uid 65534); 10 Feb 2006 19:49:07 -0000 Message-ID: <20060210194907.28739.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r376818 - /portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java Date: Fri, 10 Feb 2006 19:49:07 -0000 To: jetspeed-dev@portals.apache.org From: taylor@apache.org X-Mailer: svnmailer-1.0.6 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: taylor Date: Fri Feb 10 11:49:05 2006 New Revision: 376818 URL: http://svn.apache.org/viewcvs?rev=376818&view=rev Log: lazy load Login Module In some app servers the module's default constructor is called instead of our preferred constructor via Spring. This attempts to resolve Spring dependencies at a later time than at construction Modified: portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java Modified: portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java?rev=376818&r1=376817&r2=376818&view=diff ============================================================================== --- portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java (original) +++ portals/jetspeed-2/trunk/components/security/src/java/org/apache/jetspeed/security/impl/DefaultLoginModule.java Fri Feb 10 11:49:05 2006 @@ -78,24 +78,30 @@ /**

The user name.

*/ private String username; + /** *

The default login module constructor.

*/ public DefaultLoginModule() { LoginModuleProxy loginModuleProxy = LoginModuleProxyImpl.loginModuleProxy; - this.ums = loginModuleProxy.getUserManager(); + if (loginModuleProxy != null) + { + this.ums = loginModuleProxy.getUserManager(); + } debug = false; success = false; commitSuccess = false; username = null; } + /** * Create a new login module that uses the given user manager. * @param userManager the user manager to use */ - protected DefaultLoginModule (UserManager userManager) { + protected DefaultLoginModule (UserManager userManager) + { ums = userManager; debug = false; success = false; @@ -120,6 +126,18 @@ return true; } + protected void refreshProxy() + { + if (this.ums == null) + { + LoginModuleProxy loginModuleProxy = LoginModuleProxyImpl.loginModuleProxy; + if (loginModuleProxy != null) + { + this.ums = loginModuleProxy.getUserManager(); + } + } + } + /** * @see javax.security.auth.spi.LoginModule#commit() */ @@ -135,6 +153,7 @@ { // TODO We should get the user profile here and had it in cache so that we do not have to retrieve it again. // TODO Ideally the User should be available from the session. Need discussion around this. + refreshProxy(); commitPrincipals(subject, ums.getUser(username)); username = null; @@ -177,6 +196,7 @@ ((PasswordCallback) callbacks[1]).clearPassword(); + refreshProxy(); success = ums.authenticate(this.username, password); callbacks[0] = null; --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org For additional commands, e-mail: jetspeed-dev-help@portals.apache.org