tikhomirov@699: /* tikhomirov@699: * Copyright (c) 2013 TMate Software Ltd tikhomirov@699: * tikhomirov@699: * This program is free software; you can redistribute it and/or modify tikhomirov@699: * it under the terms of the GNU General Public License as published by tikhomirov@699: * the Free Software Foundation; version 2 of the License. tikhomirov@699: * tikhomirov@699: * This program is distributed in the hope that it will be useful, tikhomirov@699: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@699: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@699: * GNU General Public License for more details. tikhomirov@699: * tikhomirov@699: * For information on how to redistribute this software under tikhomirov@699: * the terms of a license other than GNU General Public License tikhomirov@699: * contact TMate Software at support@hg4j.com tikhomirov@699: */ tikhomirov@699: package org.tmatesoft.hg.auth; tikhomirov@699: tikhomirov@699: import java.io.InputStream; tikhomirov@699: import java.security.cert.X509Certificate; tikhomirov@699: tikhomirov@699: import org.tmatesoft.hg.internal.Experimental; tikhomirov@699: tikhomirov@699: /** tikhomirov@699: * Clients do not implement this interface, instead, they invoke appropriate authentication method tikhomirov@699: * once they got user input tikhomirov@699: * tikhomirov@699: * @author Artem Tikhomirov tikhomirov@699: * @author TMate Software Ltd. tikhomirov@699: * @since 1.2 tikhomirov@699: */ tikhomirov@699: @Experimental(reason="Provisional API. Work in progress") tikhomirov@699: public interface HgAuthMethod { tikhomirov@699: public void noCredentials() throws HgAuthFailedException; tikhomirov@699: public boolean supportsPassword(); tikhomirov@699: public void withPassword(String username, String password) throws HgAuthFailedException; tikhomirov@699: public boolean supportsPublicKey(); tikhomirov@699: public void withPublicKey(String username, InputStream privateKey, String passphrase) throws HgAuthFailedException; tikhomirov@699: public boolean supportsCertificate(); tikhomirov@699: public void withCertificate(X509Certificate[] clientCertChain) throws HgAuthFailedException; tikhomirov@699: }