01: /*
02: * JOSSO: Java Open Single Sign-On
03: *
04: * Copyright 2004-2008, Atricore, Inc.
05: *
06: * This is free software; you can redistribute it and/or modify it
07: * under the terms of the GNU Lesser General Public License as
08: * published by the Free Software Foundation; either version 2.1 of
09: * the License, or (at your option) any later version.
10: *
11: * This software is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this software; if not, write to the Free
18: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
20: */
21:
22: package org.josso.auth.scheme;
23:
24: import org.josso.auth.CredentialProvider;
25: import org.josso.auth.Credential;
26: import org.josso.auth.scheme.UsernameCredential;
27: import org.josso.auth.scheme.PasswordCredential;
28: import org.apache.commons.logging.Log;
29: import org.apache.commons.logging.LogFactory;
30:
31: public class UsernamePasswordCredentialProvider implements
32: CredentialProvider {
33:
34: /**
35: * The name of the credential representing a password.
36: * Used to get a new credential instance based on its name and value.
37: * Value : password
38: *
39: * @see Credential newCredential(String name, Object value)
40: */
41: public static final String PASSWORD_CREDENTIAL_NAME = "password";
42:
43: /**
44: * The name of the credential representing a username.
45: * Used to get a new credential instance based on its name and value.
46: * Value : username
47: *
48: * @see Credential newCredential(String name, Object value)
49: */
50: public static final String USERNAME_CREDENTIAL_NAME = "username";
51:
52: private static final Log logger = LogFactory
53: .getLog(UsernamePasswordCredentialProvider.class);
54:
55: /**
56: * Creates a new credential based on its name and value.
57: *
58: * @param name the credential name
59: * @param value the credential value
60: * @return the Credential instance representing the supplied name-value pair.
61: */
62: public Credential newCredential(String name, Object value) {
63: if (name.equalsIgnoreCase(USERNAME_CREDENTIAL_NAME)) {
64: return new UsernameCredential(value);
65: }
66:
67: if (name.equalsIgnoreCase(PASSWORD_CREDENTIAL_NAME)) {
68: return new PasswordCredential(value);
69: }
70:
71: // Don't know how to handle this name ...
72: if (logger.isDebugEnabled())
73: logger.debug("Unknown credential name : " + name);
74:
75: return null;
76:
77: }
78: }
|