/*
 * @(#)SessionAuthenticator.java
 *
 * Copyright (C) 2006 Infocity Inc. All Rights Reserved.
 */
package info.dragonlady.sso.helper;

import info.dragonlady.sso.SSOConfig;

import javax.servlet.http.HttpServletRequest;

/**
 * セッション属性に含まれる認証IDを使用して認証を行うクラス。
 * 
 * @author Hiroshi.Ebata(INFOCITY)
 * @version $Revision: 1.0 $ $Date: 2006/11/22 15:38:23 $
 */
public class SessionAuthenticator implements Authenticator {

	/**
	 * コンストラクタ。
	 */
	public SessionAuthenticator() {
	}

	/**
	 * アカウント認証処理。セッション属性の認証IDを使用する。
	 * 
	 * @param request HTTP要求オブジェクト
	 * @return boolean 認証結果 true：認証OK／false：認証NG
	 * @throws AuthenticationException
	 * @see info.dragonlady.sso.helper.Authenticator#authenticate(javax.servlet.http.HttpServletRequest)
	 */
	public boolean authenticate(HttpServletRequest request) throws AuthenticationException {
		try {
			String id = (String)request.getSession().getAttribute(SSOConfig.getLoginKey());
			return (id != null && id.length() > 0 && LoginManager.getInstance().isLoggedIn(id));
		} catch(Exception e) {
			throw new AuthenticationException(e);
		}
	}

}
