8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey/*
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* The contents of this file are subject to the terms of the Common Development and
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* Distribution License (the License). You may not use this file except in compliance with the
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* License.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey*
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* specific language governing permission and limitations under the License.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey*
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* When distributing Covered Software, include this CDDL Header Notice in each file and include
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* Header, with the fields enclosed by brackets [] replaced by your own identifying
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* information: "Portions copyright [year] [name of copyright owner]".
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey*
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey* Copyright 2014 ForgeRock AS.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey*/
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Baileypackage com.sun.identity.authentication.callbacks;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Baileyimport org.forgerock.util.Reject;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey/**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Adds a hidden value callback so that the login form can return values that the are not visually rendered on the page.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @since 12.0.0
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Baileypublic class HiddenValueCallback implements javax.security.auth.callback.Callback, java.io.Serializable {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey private String value;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey private final String id;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey private final String defaultValue = "";
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Create a new HiddenValueCallback with the id as specified.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @param id The id for the HiddenValueCallback when it is rendered as an HTML element.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public HiddenValueCallback(String id) {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey Reject.ifNull(id, "A HiddenValueCallback must be given an id.");
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey this.id = id;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Create a new HiddenValueCallback with the id and initial value as specified.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @param id The id for the HiddenValueCallback when it is rendered as an HTML element.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @param value The initial value for the HiddenValueCallback when it is rendered as an HTML element.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public HiddenValueCallback(String id, String value) {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey Reject.ifNull(id, "A HiddenValueCallback must be given an id.");
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey this.id = id;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey this.value = value;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Get the value set on the HiddenValueCallback when it is sent in a REST request.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @return The value set on the callback.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public String getValue() {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey return value;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Set the value on the HiddenValueCallback.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @param value The value to set on the callback.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public void setValue(String value) {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey this.value = value;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Get the id for the HiddenValueCallback to use when it is rendered as an HTML element.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @return The id for the callback.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public String getId() {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey return id;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey /**
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * Get the initial default value set on the HiddenValueCallback.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey *
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey * @return The initial default value.
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey */
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey public java.lang.String getDefaultValue() {
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey return defaultValue;
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey }
8d703e778adaffe0f9319b3e84f9fe9741466b33Brian Bailey}