|  | @@ -1,4 +1,4 @@
 | 
	
		
			
				|  |  | -/* Copyright 2004, 2005 Acegi Technology Pty Limited
 | 
	
		
			
				|  |  | +/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * Licensed under the Apache License, Version 2.0 (the "License");
 | 
	
		
			
				|  |  |   * you may not use this file except in compliance with the License.
 | 
	
	
		
			
				|  | @@ -12,8 +12,11 @@
 | 
	
		
			
				|  |  |   * See the License for the specific language governing permissions and
 | 
	
		
			
				|  |  |   * limitations under the License.
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  package org.acegisecurity.ui;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import org.acegisecurity.concurrent.SessionIdentifierAware;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  import java.io.Serializable;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import javax.servlet.http.HttpServletRequest;
 | 
	
	
		
			
				|  | @@ -26,13 +29,18 @@ import javax.servlet.http.HttpSession;
 | 
	
		
			
				|  |  |   * @author Ben Alex
 | 
	
		
			
				|  |  |   * @version $Id$
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -public class WebAuthenticationDetails implements Serializable {
 | 
	
		
			
				|  |  | +public class WebAuthenticationDetails implements SessionIdentifierAware,
 | 
	
		
			
				|  |  | +    Serializable {
 | 
	
		
			
				|  |  | +    //~ Instance fields ========================================================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private String remoteAddress;
 | 
	
		
			
				|  |  |      private String sessionId;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    //~ Constructors ===========================================================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * Constructor.
 | 
	
		
			
				|  |  | -     *
 | 
	
		
			
				|  |  | +     * 
 | 
	
		
			
				|  |  |       * <p>
 | 
	
		
			
				|  |  |       * NB: This constructor will cause a <code>HttpSession</code> to be created
 | 
	
		
			
				|  |  |       * (this is considered reasonable as all Acegi Security authentication
 | 
	
	
		
			
				|  | @@ -51,8 +59,9 @@ public class WebAuthenticationDetails implements Serializable {
 | 
	
		
			
				|  |  |      public WebAuthenticationDetails(HttpServletRequest request,
 | 
	
		
			
				|  |  |          boolean forceSessionCreation) {
 | 
	
		
			
				|  |  |          this.remoteAddress = request.getRemoteAddr();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          HttpSession session = request.getSession(forceSessionCreation);
 | 
	
		
			
				|  |  | -        this.sessionId = session != null ? session.getId() : null;
 | 
	
		
			
				|  |  | +        this.sessionId = (session != null) ? session.getId() : null;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          doPopulateAdditionalInformation(request);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -61,6 +70,15 @@ public class WebAuthenticationDetails implements Serializable {
 | 
	
		
			
				|  |  |          throw new IllegalArgumentException("Cannot use default constructor");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    //~ Methods ================================================================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * Provided so that subclasses can populate additional information.
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param request that the authentication request was received from
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    protected void doPopulateAdditionalInformation(HttpServletRequest request) {}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * Indicates the TCP/IP address the authentication request was received
 | 
	
		
			
				|  |  |       * from.
 | 
	
	
		
			
				|  | @@ -89,12 +107,4 @@ public class WebAuthenticationDetails implements Serializable {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return sb.toString();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * Provided so that subclasses can populate additional information.
 | 
	
		
			
				|  |  | -     *
 | 
	
		
			
				|  |  | -     * @param request that the authentication request was received from
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    protected void doPopulateAdditionalInformation(HttpServletRequest request) {
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |  }
 |