1 /*
2 * Copyright (C) 2018, Thomas Wolf <thomas.wolf@paranor.ch> and others
3 *
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Distribution License v. 1.0 which is available at
6 * https://www.eclipse.org/org/documents/edl-v10.php.
7 *
8 * SPDX-License-Identifier: BSD-3-Clause
9 */
10 package org.eclipse.jgit.internal.transport.sshd.auth;
11
12 import java.net.InetSocketAddress;
13
14 /**
15 * Abstract base class for {@link AuthenticationHandler}s encapsulating basic
16 * common things.
17 *
18 * @param <ParameterType>
19 * defining the parameter type for the authentication
20 * @param <TokenType>
21 * defining the token type for the authentication
22 */
23 public abstract class AbstractAuthenticationHandler<ParameterType, TokenType>
24 implements AuthenticationHandler<ParameterType, TokenType> {
25
26 /** The {@link InetSocketAddress} or the proxy to connect to. */
27 protected InetSocketAddress proxy;
28
29 /** The last set parameters. */
30 protected ParameterType params;
31
32 /** A flag telling whether this authentication is done. */
33 protected boolean done;
34
35 /**
36 * Creates a new {@link AbstractAuthenticationHandler} to authenticate with
37 * the given {@code proxy}.
38 *
39 * @param proxy
40 * the {@link InetSocketAddress} of the proxy to connect to
41 */
42 public AbstractAuthenticationHandler(InetSocketAddress proxy) {
43 this.proxy = proxy;
44 }
45
46 @Override
47 public final void setParams(ParameterType input) {
48 params = input;
49 }
50
51 @Override
52 public final boolean isDone() {
53 return done;
54 }
55
56 }