/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.internal.io.svn; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import org.tmatesoft.svn.core.SVNErrorCode; import org.tmatesoft.svn.core.SVNErrorMessage; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.auth.SVNAuthentication; import org.tmatesoft.svn.core.internal.wc.SVNErrorManager; import org.tmatesoft.svn.util.SVNLogType; /** * @version 1.3 * @author TMate Software Ltd. */ public abstract class SVNAuthenticator { protected static final String SUCCESS = "success"; protected static final String FAILURE = "failure"; protected static final String STEP = "step"; private SVNConnection myConnection; private OutputStream myConnectionOutputStream; private InputStream myConnectionInputStream; private SVNErrorMessage myLastError; private InputStream myPlainInputStream; private OutputStream myPlainOutputStream; protected SVNAuthenticator(SVNConnection connection) throws SVNException { myConnection = connection; // these are logged streams. myConnectionInputStream = connection.getInputStream(); myConnectionOutputStream = connection.getOutputStream(); // plain streams. try { myPlainInputStream = connection.getConnector().getInputStream(); myPlainOutputStream = connection.getConnector().getOutputStream(); } catch (IOException e) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e.getMessage()); SVNErrorManager.error(err, SVNLogType.NETWORK); } } protected void setOutputStream(OutputStream os) { myConnection.setOutputStream(os); } protected void setInputStream(InputStream is) { myConnection.setInputStream(is); } protected InputStream getConnectionInputStream() { return myConnectionInputStream; } protected OutputStream getConnectionOutputStream() { return myConnectionOutputStream; } protected InputStream getPlainInputStream() { return myPlainInputStream; } protected OutputStream getPlainOutputStream() { return myPlainOutputStream; } protected SVNConnection getConnection() { return myConnection; } protected SVNErrorMessage getLastError() { return myLastError; } public void dispose() { } protected void setLastError(SVNErrorMessage err) { myLastError = err; } public abstract SVNAuthentication authenticate(List mechs, String realm, SVNRepositoryImpl repository) throws SVNException; }