GUACAMOLE-96: Document semantics of voluntary attribute storage and guaranteed sanitization.

This commit is contained in:
Michael Jumper
2017-10-29 13:09:45 -07:00
parent 77255652bf
commit 79936c4c41
4 changed files with 43 additions and 7 deletions

View File

@@ -95,8 +95,17 @@ public interface Connection extends Identifiable, Connectable {
/** /**
* Sets the given attributes. If an attribute within the map is not * Sets the given attributes. If an attribute within the map is not
* supported, it will simply be dropped. Any attributes not within the * supported, it will simply be dropped. Any attributes not within the given
* given map will be left untouched. * map will be left untouched. Attributes which are not declared within
* getConnectionAttributes() of the associated UserContext MUST NOT be
* submitted, but other extensions may manipulate the declared attributes
* through decorate() and redecorate().
*
* Implementations may optionally allow storage of unsupported attributes.
* Extensions which rely on other extensions to store their attribute
* values should verify that such storage is supported by first testing
* that the attribute value is retrievable via getAttributes() after being
* set.
* *
* @param attributes * @param attributes
* A map of all attribute identifiers to their corresponding values. * A map of all attribute identifiers to their corresponding values.

View File

@@ -137,8 +137,17 @@ public interface ConnectionGroup extends Identifiable, Connectable {
/** /**
* Sets the given attributes. If an attribute within the map is not * Sets the given attributes. If an attribute within the map is not
* supported, it will simply be dropped. Any attributes not within the * supported, it will simply be dropped. Any attributes not within the given
* given map will be left untouched. * map will be left untouched. Attributes which are not declared within
* getConnectionGroupAttributes() of the associated UserContext MUST NOT be
* submitted, but other extensions may manipulate the declared attributes
* through decorate() and redecorate().
*
* Implementations may optionally allow storage of unsupported attributes.
* Extensions which rely on other extensions to store their attribute
* values should verify that such storage is supported by first testing
* that the attribute value is retrievable via getAttributes() after being
* set.
* *
* @param attributes * @param attributes
* A map of all attribute identifiers to their corresponding values. * A map of all attribute identifiers to their corresponding values.

View File

@@ -107,7 +107,16 @@ public interface SharingProfile extends Identifiable {
/** /**
* Sets the given attributes. If an attribute within the map is not * Sets the given attributes. If an attribute within the map is not
* supported, it will simply be dropped. Any attributes not within the * supported, it will simply be dropped. Any attributes not within the
* given map will be left untouched. * given map will be left untouched. Attributes which are not declared
* within getSharingProfileAttributes() of the associated UserContext MUST
* NOT be submitted, but other extensions may manipulate the declared
* attributes through decorate() and redecorate().
*
* Implementations may optionally allow storage of unsupported attributes.
* Extensions which rely on other extensions to store their attribute
* values should verify that such storage is supported by first testing
* that the attribute value is retrievable via getAttributes() after being
* set.
* *
* @param attributes * @param attributes
* A map of all attribute identifiers to their corresponding values. * A map of all attribute identifiers to their corresponding values.

View File

@@ -94,8 +94,17 @@ public interface User extends Identifiable {
/** /**
* Sets the given attributes. If an attribute within the map is not * Sets the given attributes. If an attribute within the map is not
* supported, it will simply be dropped. Any attributes not within the * supported, it will simply be dropped. Any attributes not within the given
* given map will be left untouched. * map will be left untouched. Attributes which are not declared within
* getUserAttributes() of the associated UserContext MUST NOT be submitted,
* but other extensions may manipulate the declared attributes through
* decorate() and redecorate().
*
* Implementations may optionally allow storage of unsupported attributes.
* Extensions which rely on other extensions to store their attribute
* values should verify that such storage is supported by first testing
* that the attribute value is retrievable via getAttributes() after being
* set.
* *
* @param attributes * @param attributes
* A map of all attribute identifiers to their corresponding values. * A map of all attribute identifiers to their corresponding values.