org.cesecore.authentication.tokens.AuthenticationTokenMetaData Maven / Gradle / Ivy
/*************************************************************************
* *
* CESeCore: CE Security Core *
* *
* This software is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or any later version. *
* *
* See terms of license at gnu.org. *
* *
*************************************************************************/
package org.cesecore.authentication.tokens;
import java.util.List;
import java.util.Map;
import org.cesecore.authorization.user.matchvalues.AccessMatchValue;
/**
* Meta data definition and marker interface used by the ServiceLoader that all AuthenticationToken types must have to be usable.
*
* @version $Id: AuthenticationTokenMetaData.java 25249 2017-02-10 15:06:43Z jeklund $
*/
public interface AuthenticationTokenMetaData {
/** @return the type identifier of the AuthenticationToken */
String getTokenType();
/** @return true if the this type of AuthenticationToken should be UI configurable. */
boolean isUserConfigurable();
/** @return a List of all available AccessMatchValue for this type of AuthenctionToken */
List getAccessMatchValues();
/** @return a Map of all available database values mapped to the AccessMatchValue in the context of this type of AuthenticationToken */
Map getAccessMatchValueIdMap();
/** @return a Map of all available names mapped to the AccessMatchValue in the context of this type of AuthenticationToken */
Map getAccessMatchValueNameMap();
/** @return the default AccessMatchValue for this type of AuthenticationToken */
AccessMatchValue getAccessMatchValueDefault();
/** @return true if the token is a super token (granting access to any rule) */
boolean isSuperToken();
}