Class Property

  • All Implemented Interfaces:
    Serializable

    public class Property
    extends Object
    implements Serializable
    Property that consists of a string key and a string value.

    This class is used mainly to represent an extra property that is associated with an access token. Some Authlete APIs (such as /api/auth/token API) accept an array of properties via properties request parameter and associate the properties with an access token.

    Since:
    1.32
    Author:
    Takahiko Kawasaki
    See Also:
    Serialized Form
    • Constructor Detail

      • Property

        public Property()
        Constructor with a null key and a null value.
      • Property

        public Property​(String key,
                        String value)
        Constructor with a pair of key and value. This is an alias of this (key, value, false).
        Parameters:
        key -
        value -
      • Property

        public Property​(String key,
                        String value,
                        boolean hidden)
        Constructor with a pair of key and value, and a flag to mark this property as hidden or not.
        Parameters:
        key -
        value -
        hidden - true to mark this property as hidden. See the JavaDoc of isHidden() for details.
        Since:
        1.33
    • Method Detail

      • getKey

        public String getKey()
        Get the key.
        Returns:
        Key
      • setKey

        public Property setKey​(String key)
        Set the key.
        Parameters:
        key - Key
        Returns:
        this object.
      • getValue

        public String getValue()
        Get the value.
        Returns:
        Value
      • setValue

        public Property setValue​(String value)
        Set the value.
        Parameters:
        value - Value
        Returns:
        this object.
      • isHidden

        public boolean isHidden()
        Check if this property is hidden from client applications.

        If a property is not hidden, the property will come along with an access token. For example, if you set the properties request parameter as follows when you call Authlete's /api/auth/token API,

         "properties": [
             {
                 "key":"example_parameter",
                 "value":"example_value",
                 "hidden":false
             }
         ]

        The value of responseContent in the response from the API will contain the pair of example_parameter and example_value like below,

         "responseContent": "{\"access_token\":\"(abbrev)\",\"example_parameter\":\"example_value\",...}"

        and this will result in that the client application will receive a JSON which contains the pair like the following.

         {
             "access_token":"(abbrev)",
             "example_parameter":"example_value",
             ...
         }

        On the other hand, if you mark a property as hidden like below,

         "properties": [
             {
                 "key":"hidden_parameter",
                 "value":"hidden_value",
                 "hidden":true
             }
         ]

        the client application will never see the property in any response from your authorization server. However, of course, the property is still associated with the access token and it can be confirmed by calling Authlete's /api/auth/introspection API (which is an API to get information about an access token). A response from the API contains all properties associated with the given access token regardless of whether they are hidden or visible. The following is an example from Authlete's introspection API.

         {
           "type":"introspectionResponse",
           "resultCode":"A056001",
           "resultMessage":"[A056001] The access token is valid.",
           "action":"OK",
           "clientId":5008706718,
           "existent":true,
           "expiresAt":1463310477000,
           "properties":[
             {
               "hidden":false,
               "key":"example_parameter",
               "value":"example_value"
             },
             {
               "hidden":true,
               "key":"hidden_parameter",
               "value":"hidden_value"
             }
           ],
           "refreshable":true,
           "responseContent":"Bearer error=\"invalid_request\"",
           "subject":"user123",
           "sufficient":true,
           "usable":true
         }
        Returns:
        true if this property is hidden from client applications. false if this property is visible to client applications.
        Since:
        1.33
      • setHidden

        public Property setHidden​(boolean hidden)
        Set this property hidden from or visible to client applications. See the JavaDoc of isHidden() method for the difference between hidden and visible.
        Parameters:
        hidden - true to hide this property from client applications. false to make this property visible to client applications.
        Returns:
        this object.
        Since:
        1.33
      • toString

        public String toString()
        Get the string representation of this property in the format of "{key}={value}". If this property is hidden, " (hidden)" is appended and so the resultant string will become "{key}={value} (hidden)".
        Overrides:
        toString in class Object