/* * eID Applet Project. * Copyright (C) 2008-2009 FedICT. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version * 3.0 as published by the Free Software Foundation. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, see * http://www.gnu.org/licenses/. */ package be.fedict.eid.applet.service.spi; import java.util.List; /** * Interface for security environment service components. Can be used by the eID * Applet Service to check the client environment security requirements. * * @author Frank Cornelis * */ public interface SecureClientEnvironmentService { /** * Checks whether the client environment is secure enough for this web * application. * * @param javaVersion * the version of the Java JRE on the client machine. * @param javaVendor * the vendor of the Java JRE on the client machine. * @param osName * the name of the operating system on the client machine. * @param osArch * the architecture of the client machine. * @param osVersion * the operating system version of the client machine. * @param userAgent * the user agent, i.e. browser, used on the client machine. * @param navigatorAppName * the optional navigator application name (browser) * @param navigatorAppVersion * the optional navigator application version (browser version) * @param navigatorUserAgent * the optional optional navigator user agent name. * @param remoteAddress * the address of the client machine. * @param sslKeySize * the optional key size of the SSL session used between server * and client. Can be <code>null</code> in case the SSL is * terminated early. * @param sslCipherSuite * the optional cipher suite of the SSL session used between * server and client. Can be <code>null</code> in case the SSL is * terminated early. * @param readerList * the list of smart card readers present on the client machine. * @throws InsecureClientEnvironmentException * if the client env is found not to be secure enough. */ void checkSecureClientEnvironment(String javaVersion, String javaVendor, String osName, String osArch, String osVersion, String userAgent, String navigatorAppName, String navigatorAppVersion, String navigatorUserAgent, String remoteAddress, Integer sslKeySize, String sslCipherSuite, List<String> readerList) throws InsecureClientEnvironmentException; }