1 /**
2 This file is part of GoldenGate Project (named also GoldenGate or GG).
3
4 Copyright 2009, Frederic Bregier, and individual contributors by the @author
5 tags. See the COPYRIGHT.txt in the distribution for a full listing of
6 individual contributors.
7
8 All GoldenGate Project is free software: you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as published
10 by the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 GoldenGate is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GoldenGate . If not, see <http://www.gnu.org/licenses/>.
20 */
21 package goldengate.ftp.simpleimpl.file;
22
23 import goldengate.common.logging.GgInternalLogger;
24 import goldengate.common.logging.GgInternalLoggerFactory;
25
26 /**
27 * Simple Authentication based on a previously load XML file. Not to be used in
28 * production!
29 *
30 * @author Frederic Bregier
31 *
32 */
33 public class SimpleAuth {
34 /**
35 * Internal Logger
36 */
37 private static final GgInternalLogger logger = GgInternalLoggerFactory
38 .getLogger(SimpleAuth.class);
39
40 /**
41 * User name
42 */
43 public String user = null;
44
45 /**
46 * Password
47 */
48 public String password = null;
49
50 /**
51 * Multiple accounts
52 */
53 public String[] accounts = null;
54
55 /**
56 * Is the current user an administrator (which can shutdown or change
57 * bandwidth limitation)
58 */
59 public boolean isAdmin = false;
60
61 /**
62 * @param user
63 * @param password
64 * @param accounts
65 */
66 public SimpleAuth(String user, String password, String[] accounts) {
67 this.user = user;
68 this.password = password;
69 this.accounts = accounts;
70 }
71
72 /**
73 * Is the given password a valid one
74 *
75 * @param newpassword
76 * @return True if the password is valid (or any password is valid)
77 */
78 public boolean isPasswordValid(String newpassword) {
79 if (password == null) {
80 return true;
81 }
82 if (newpassword == null) {
83 return false;
84 }
85 return password.equals(newpassword);
86 }
87
88 /**
89 * Is the given account a valid one
90 *
91 * @param account
92 * @return True if the account is valid (or any account is valid)
93 */
94 public boolean isAccountValid(String account) {
95 if (accounts == null) {
96 logger.debug("No account needed");
97 return true;
98 }
99 if (account == null) {
100 logger.debug("No account given");
101 return false;
102 }
103 for (String acct: accounts) {
104 if (acct.equals(account)) {
105 logger.debug("Account found");
106 return true;
107 }
108 }
109 logger.debug("No account found");
110 return false;
111 }
112
113 /**
114 *
115 * @param isAdmin
116 * True if the user should be an administrator
117 */
118 public void setAdmin(boolean isAdmin) {
119 this.isAdmin = isAdmin;
120 }
121 }