/*
* Copyright (c) 2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.security.authentication;
import com.emc.storageos.db.client.model.BaseToken;
import com.emc.storageos.db.client.model.StorageOSUserDAO;
import com.emc.storageos.svcs.errorhandling.resources.InternalException;
/**
* Interface for token validation
*/
public interface TokenValidator {
/**
*
* Decodes and validates a auth token. If valid, return user record.
* This is a compound operation of decode + verifyToken + resolveUser
* and supports tokens from remote VDCs
*
* @param token
* @return storageosuser data model object
* @throws InternalException
*/
public StorageOSUserDAO validateToken(String token);
/**
* Decodes and validates a token but does not resolve the user.
*
* @param token (signed token on wire)
* @return Token object if valid
*/
public BaseToken verifyToken(String token);
/**
* Retrieves a user record from a valid token
*
* @param token
* @return user record
*/
public StorageOSUserDAO resolveUser(BaseToken token);
}