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 org.tmatesoft.hg.core.SessionContext; tikhomirov@699: import org.tmatesoft.hg.internal.Experimental; tikhomirov@699: import org.tmatesoft.hg.repo.HgRemoteRepository.RemoteDescriptor; tikhomirov@699: tikhomirov@699: /** tikhomirov@699: * Client may implement this interface if they need more control over authentication process. tikhomirov@699: * tikhomirov@699: * @see SessionContext#getAuthenticator(RemoteDescriptor) 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 HgAuthenticator { tikhomirov@699: // XXX either another AuthMethod or a separate #authenticate tikhomirov@699: // to perform server check. Alternatively, as methods in AuthMethod tikhomirov@699: public void authenticate(RemoteDescriptor rd, HgAuthMethod authMethod) throws HgAuthFailedException; tikhomirov@699: }