001 /* 002 * $Id: PasswordStore.java 3343 2009-05-25 00:33:12Z kschaefe $ 003 * 004 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, 005 * Santa Clara, California 95054, U.S.A. All rights reserved. 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this library; if not, write to the Free Software 019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 020 */ 021 package org.jdesktop.swingx.auth; 022 023 /** 024 * PasswordStore specifies a mechanism to store passwords used to authenticate 025 * using the <strong>LoginService</strong>. The actual mechanism used 026 * to store the passwords is left up to the implementation. 027 * 028 * @author Bino George 029 * @author Jonathan Giles 030 */ 031 public abstract class PasswordStore { 032 /** 033 * Saves a password for future use. 034 * 035 * @param username username used to authenticate. 036 * @param server server used for authentication 037 * @param password password to save. Password can't be null. Use empty array for empty password. 038 */ 039 public abstract boolean set(String username, String server, char[] password); 040 041 /** 042 * Fetches the password for a given server and username. 043 * @param username username 044 * @param server server 045 * @return <code>null</code> if not found, a character array representing the password 046 * otherwise. Returned array can be empty if the password is empty. 047 */ 048 public abstract char[] get(String username, String server); 049 050 /** 051 * This should attempt to remove the given username from the password store, as well as any associated password. 052 * @param username The username to remove 053 */ 054 public abstract void removeUserPassword(String username); 055 }