1/* 2* Conditions Of Use 3* 4* This software was developed by employees of the National Institute of 5* Standards and Technology (NIST), an agency of the Federal Government. 6* Pursuant to title 15 Untied States Code Section 105, works of NIST 7* employees are not subject to copyright protection in the United States 8* and are considered to be in the public domain. As a result, a formal 9* license is not needed to use the software. 10* 11* This software is provided by NIST as a service and is expressly 12* provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED 13* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF 14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT 15* AND DATA ACCURACY. NIST does not warrant or make any representations 16* regarding the use of the software or the results thereof, including but 17* not limited to the correctness, accuracy, reliability or usefulness of 18* the software. 19* 20* Permission to use this software is contingent upon your acceptance 21* of the terms of this agreement 22* 23* . 24* 25*/ 26/******************************************************************************* 27* Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * 28*******************************************************************************/ 29package gov.nist.javax.sip.header; 30import gov.nist.core.*; 31 32/** 33 * Credentials that are used in authentication and authorization headers. 34 * @author M. Ranganathan 35 * @version 1.2 $Revision: 1.7 $ $Date: 2009/07/17 18:57:30 $ 36 * @since 1.1 37 */ 38public class Credentials extends SIPObject { 39 40 /** 41 * Comment for <code>serialVersionUID</code> 42 */ 43 private static final long serialVersionUID = -6335592791505451524L; 44 45 private static String DOMAIN = ParameterNames.DOMAIN; 46 private static String REALM = ParameterNames.REALM; 47 private static String OPAQUE = ParameterNames.OPAQUE; 48 private static String RESPONSE = ParameterNames.RESPONSE; 49 private static String URI = ParameterNames.URI; 50 private static String NONCE = ParameterNames.NONCE; 51 private static String CNONCE = ParameterNames.CNONCE; 52 private static String USERNAME = ParameterNames.USERNAME; 53 54 protected String scheme; 55 56 /** 57 * parameters list. 58 */ 59 protected NameValueList parameters; 60 61 /** 62 * Default constructor 63 */ 64 public Credentials() { 65 parameters = new NameValueList(); 66 parameters.setSeparator(COMMA); 67 } 68 69 /** 70 * get the parameters list. 71 * @return NameValueList 72 */ 73 public NameValueList getCredentials() { 74 return parameters; 75 } 76 77 /** 78 * get the scheme field. 79 * @return String. 80 */ 81 public String getScheme() { 82 return scheme; 83 } 84 85 /** 86 * Set the scheme member 87 * @param s String to set 88 */ 89 public void setScheme(String s) { 90 scheme = s; 91 } 92 93 /** 94 * Set the parameters member 95 * @param c NameValueList to set. 96 */ 97 public void setCredentials(NameValueList c) { 98 parameters = c; 99 } 100 101 public String encode() { 102 String retval = scheme; 103 if (!parameters.isEmpty()) { 104 retval += SP + parameters.encode(); 105 } 106 return retval; 107 } 108 109 /*public void setCredential(NameValue nameValue) { 110 if (nameValue.getName().compareToIgnoreCase(URI) == 0) 111 nameValue.setQuotedValue(); 112 else if (nameValue.getName().compareToIgnoreCase(NONCE) == 0) 113 nameValue.setQuotedValue(); 114 else if (nameValue.getName().compareToIgnoreCase(REALM) == 0) 115 nameValue.setQuotedValue(); 116 else if (nameValue.getName().compareToIgnoreCase(CNONCE) == 0) 117 nameValue.setQuotedValue(); 118 else if (nameValue.getName().compareToIgnoreCase(RESPONSE) == 0) 119 nameValue.setQuotedValue(); 120 else if (nameValue.getName().compareToIgnoreCase(OPAQUE) == 0) 121 nameValue.setQuotedValue(); 122 else if (nameValue.getName().compareToIgnoreCase(USERNAME) == 0) 123 nameValue.setQuotedValue(); 124 else if (nameValue.getName().compareToIgnoreCase(DOMAIN) == 0) 125 nameValue.setQuotedValue(); 126 parameters.set(nameValue); 127 }*/ 128 129 public Object clone() { 130 Credentials retval = (Credentials) super.clone(); 131 if (this.parameters != null) 132 retval.parameters = (NameValueList) this.parameters.clone(); 133 return retval; 134 } 135} 136