All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openid4java.message.ax.StoreResponse Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2006-2008 Sxip Identity Corporation
 */

package org.openid4java.message.ax;

import org.openid4java.message.ParameterList;
import org.openid4java.message.MessageException;
import org.openid4java.message.Parameter;

import java.util.Iterator;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Implements the extension for Attribute Exchange store responses.
 *
 * @author Marius Scurtescu, Johnny Bufu
 */
public class StoreResponse extends AxMessage
{
    private static Log _log = LogFactory.getLog(StoreResponse.class);
    private static final boolean DEBUG = _log.isDebugEnabled();

    /**
     * Constructs a Store Response with an empty parameter list.
     */
    protected StoreResponse()
    {
        _parameters.set(new Parameter("mode", "store_response_success"));

        if (DEBUG) _log.debug("Created empty store request.");
    }

    /**
     * Constructs a Store Response with an empty parameter list.
     */
    public static StoreResponse createStoreResponse()
    {
        return new StoreResponse();
    }

    /**
     * Constructs a StoreResponse from a parameter list.
     * 

* The parameter list can be extracted from a received message with the * getExtensionParams method of the Message class, and MUST NOT contain * the "openid.." prefix. */ protected StoreResponse(ParameterList params) { super(params); } /** * Constructs a StoreResponse from a parameter list. *

* The parameter list can be extracted from a received message with the * getExtensionParams method of the Message class, and MUST NOT contain * the "openid.." prefix. */ public static StoreResponse createStoreResponse(ParameterList params) throws MessageException { StoreResponse resp = new StoreResponse(params); if (! resp.isValid()) throw new MessageException("Invalid parameters for a store response"); if (DEBUG) _log.debug("Created store response from parameter list:\n" + params); return resp; } /** * Marks the Store Response as a failure, by setting the appropirate * parameters. * * @param description Describes the error condition leading to * the failure response */ public void setFailure(String description) { _parameters.set(new Parameter("mode", "store_response_failure")); if (description != null) _parameters.set(new Parameter("error", description)); } /** * Returns true if the Store Response is a failure message, true if it is * a success response. */ public boolean hasFailed() { return "store_response_failure".equals( _parameters.getParameterValue("mode") ); } /** * Gets the status of the Store Response if the 'status' parameter is part * of the response, or null otherwise. */ public String getErrorDescription() { return _parameters.getParameterValue("error"); } /** * Checks the validity of the extension. *

* Used when constructing a extension from a parameter list. * * @return True if the extension is valid, false otherwise. */ private boolean isValid() { if ( ! _parameters.hasParameter("mode") || ( ! "store_response_success".equals(_parameters.getParameterValue("mode")) && ! "store_response_failure".equals(_parameters.getParameterValue("mode")) ) ) { _log.warn("Invalid mode value in store response: " + _parameters.getParameterValue("mode")); return false; } Iterator it = _parameters.getParameters().iterator(); while (it.hasNext()) { Parameter param = (Parameter) it.next(); String paramName = param.getKey(); if (! paramName.equals("mode") && ! paramName.equals("error")) { _log.warn("Invalid parameter name in store response: " + paramName); return false; } } return true; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy