/**
 * DRIVER project 2006-2007
 * 
 * file		:	AuthenticateRequest.java
 * package	: 	eu.dnetlib.enabling.aas.rmi
 * project	:	driver-aa
 * created	:	2006-08-28
 * author	:	jarwyp
 */
package eu.dnetlib.enabling.aas.rmi;

/**
 * Contains request informations for authentication process. 
 * Used by two types of resources: service resources and user resources.
 * Users authentication can be based on cookies, passwords, SSO sessions, IP numbers etc.
 * Services authentication is based on certificates.
 * 
 * @author jarwyp
 *
 */
public class AuthenticateRequest extends A2Request{
	/**
	 * 
	 */
	private static final long serialVersionUID = -7489410642470641335L;
	
	private TypedString[] principals;
	private TypedString[] credentials;
	private Attribute[] attributes;


	public AuthenticateRequest(
			TypedString[] principals,
			TypedString[] credentials,
			Attribute[] attributes){
		this.principals = principals;
		this.credentials = credentials;
		this.attributes = attributes;
	}
	
	/**
	 * Default constructor.
	 */
	public AuthenticateRequest(){
		
	}
	
	
	/**
	 * Returns credentials of authentication request.
	 * @return credentials
	 */
	public TypedString[] getCredentials(){
		return credentials;
	}
	
	/**
	 * Returns principals of authentication request.
	 * @return principals
	 */
	public TypedString[] getPrincipals() {
		return principals;
	}

	/**
	 * Sets principals for authentication request.
	 * @param principals
	 */
	public void setPrincipals(TypedString[] principals) {
		this.principals = principals;
	}

	/**
	 * Sets credentials for authentication request.
	 * @param credentials
	 */
	public void setCredentials(TypedString[] credentials) {
		this.credentials = credentials;
	}

	/**
	 * Returns request attributes.
	 * @return request attributes
	 */
	public Attribute[] getAttributes() {
		return attributes;
	}

	/**
	 * Gets attributes from request.
	 * @param attributes
	 */
	public void setAttributes(Attribute[] attributes) {
		this.attributes = attributes;
	}

}
