mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 17:13:21 +00:00 
			
		
		
		
	GUACAMOLE-5: Define UserCredentials object which couples a CredentialsInfo with defined parameter values.
This commit is contained in:
		| @@ -0,0 +1,220 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License.  You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package org.apache.guacamole.net.auth.credentials; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| import org.apache.guacamole.form.Field; | ||||
|  | ||||
| /** | ||||
|  * A fully-valid set of credentials and associated values. Each instance of | ||||
|  * this object should describe a full set of parameter name/value pairs which | ||||
|  * can be used to authenticate successfully, even if that success depends on | ||||
|  * factors not described by this object. | ||||
|  * | ||||
|  * @author Michael Jumper | ||||
|  */ | ||||
| public class UserCredentials extends CredentialsInfo { | ||||
|  | ||||
|     /** | ||||
|      * All fields required for valid credentials. | ||||
|      */ | ||||
|     private Map<String, String> values; | ||||
|  | ||||
|     /** | ||||
|      * Creates a new UserCredentials object which requires the given fields and | ||||
|      * values. | ||||
|      * | ||||
|      * @param fields | ||||
|      *     The fields to require. | ||||
|      * | ||||
|      * @param values | ||||
|      *     The values required for each field, as a map of field name to | ||||
|      *     correct value. | ||||
|      */ | ||||
|     public UserCredentials(Collection<Field> fields, Map<String, String> values) { | ||||
|         super(fields); | ||||
|         this.values = values; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Creates a new UserCredentials object which requires fields described by | ||||
|      * the given CredentialsInfo. The value required for each field in the | ||||
|      * CredentialsInfo is defined in the given Map. | ||||
|      * | ||||
|      * @param info | ||||
|      *     The CredentialsInfo object describing the fields to require. | ||||
|      * | ||||
|      * @param values | ||||
|      *     The values required for each field, as a map of field name to | ||||
|      *     correct value. | ||||
|      */ | ||||
|     public UserCredentials(CredentialsInfo info, Map<String, String> values) { | ||||
|         this(info.getFields(), values); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Creates a new UserCredentials object which requires fields described by | ||||
|      * the given CredentialsInfo but does not yet have any defined values. | ||||
|      * | ||||
|      * @param info | ||||
|      *     The CredentialsInfo object describing the fields to require. | ||||
|      */ | ||||
|     public UserCredentials(CredentialsInfo info) { | ||||
|         this(info, new HashMap<String, String>()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Creates a new UserCredentials object which requires the given fields but | ||||
|      * does not yet have any defined values. | ||||
|      * | ||||
|      * @param fields | ||||
|      *     The fields to require. | ||||
|      */ | ||||
|     public UserCredentials(Collection<Field> fields) { | ||||
|         this(fields, new HashMap<String, String>()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns a map of field names to values which backs this UserCredentials | ||||
|      * object. Modifications to the returned map will directly affect the | ||||
|      * associated name/value pairs. | ||||
|      * | ||||
|      * @return | ||||
|      *     A map of field names to their corresponding values which backs this | ||||
|      *     UserCredentials object. | ||||
|      */ | ||||
|     public Map<String, String> getValues() { | ||||
|         return values; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Replaces the map backing this UserCredentials object with the given map. | ||||
|      * All field name/value pairs described by the original map are replaced by | ||||
|      * the name/value pairs in the given map. | ||||
|      * | ||||
|      * @param values | ||||
|      *     The map of field names to their corresponding values which should be | ||||
|      *     used to back this UserCredentials object. | ||||
|      */ | ||||
|     public void setValues(Map<String, String> values) { | ||||
|         this.values = values; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the value defined by this UserCrendentials object for the field | ||||
|      * having the given name. | ||||
|      * | ||||
|      * @param name | ||||
|      *     The name of the field whose value should be returned. | ||||
|      * | ||||
|      * @return | ||||
|      *     The value of the field having the given name, or null if no value is | ||||
|      *     defined for that field. | ||||
|      */ | ||||
|     public String getValue(String name) { | ||||
|         return values.get(name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the value defined by this UserCrendentials object for the given | ||||
|      * field. | ||||
|      * | ||||
|      * @param field | ||||
|      *     The field whose value should be returned. | ||||
|      * | ||||
|      * @return | ||||
|      *     The value of the given field, or null if no value is defined for | ||||
|      *     that field. | ||||
|      */ | ||||
|     public String getValue(Field field) { | ||||
|         return getValue(field.getName()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Sets the value of the field having the given name. Any existing value | ||||
|      * for that field is replaced. | ||||
|      * | ||||
|      * @param name | ||||
|      *     The name of the field whose value should be assigned. | ||||
|      * | ||||
|      * @param value | ||||
|      *     The value to assign to the field having the given name. | ||||
|      * | ||||
|      * @return | ||||
|      *     The previous value of the field, or null if the value of the field | ||||
|      *     was not previously defined. | ||||
|      */ | ||||
|     public String setValue(String name, String value) { | ||||
|         return values.put(name, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Sets the value of the given field. Any existing value for that field is | ||||
|      * replaced. | ||||
|      * | ||||
|      * @param field | ||||
|      *     The field whose value should be assigned. | ||||
|      * | ||||
|      * @param value | ||||
|      *     The value to assign to the given field. | ||||
|      * | ||||
|      * @return | ||||
|      *     The previous value of the field, or null if the value of the field | ||||
|      *     was not previously defined. | ||||
|      */ | ||||
|     public String setValue(Field field, String value) { | ||||
|         return setValue(field.getName(), value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Removes (undefines) the value of the field having the given name, | ||||
|      * returning its previous value. If the field value was not defined, this | ||||
|      * function has no effect, and null is returned. | ||||
|      * | ||||
|      * @param name | ||||
|      *     The name of the field whose value should be removed. | ||||
|      * | ||||
|      * @return | ||||
|      *     The previous value of the field, or null if the value of the field | ||||
|      *     was not previously defined. | ||||
|      */ | ||||
|     public String removeValue(String name) { | ||||
|         return values.remove(name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Removes (undefines) the value of the given field returning its previous | ||||
|      * value. If the field value was not defined, this function has no effect, | ||||
|      * and null is returned. | ||||
|      * | ||||
|      * @param field | ||||
|      *     The field whose value should be removed. | ||||
|      * | ||||
|      * @return | ||||
|      *     The previous value of the field, or null if the value of the field | ||||
|      *     was not previously defined. | ||||
|      */ | ||||
|     public String removeValue(Field field) { | ||||
|         return removeValue(field.getName()); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user