org.openid4java.message.DirectError Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openid4java-shaded Show documentation
Show all versions of openid4java-shaded Show documentation
openid4java (Third party dependencies shaded)
/*
* Copyright 2006-2008 Sxip Identity Corporation
*/
package org.openid4java.message;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openid4java.OpenIDException;
import java.util.List;
import java.util.Arrays;
/**
* @author Marius Scurtescu, Johnny Bufu
*/
public class DirectError extends Message
{
private static Log _log = LogFactory.getLog(DirectError.class);
private static final boolean DEBUG = _log.isDebugEnabled();
protected final static List requiredFields = Arrays.asList( new String[] {
"error"
});
protected final static List optionalFields = Arrays.asList( new String[] {
"ns",
"contact",
"reference"
});
// exception that generated the error, if any
private OpenIDException _exception;
protected DirectError(String msg)
{
this(msg, false);
}
protected DirectError(String msg, boolean compatibility)
{
this(null, msg, compatibility);
}
protected DirectError(OpenIDException e, boolean compatibility)
{
this(e, e.getMessage(), compatibility);
}
protected DirectError(OpenIDException e, String msg, boolean compatibility)
{
set("error", msg);
_exception = e;
if ( ! compatibility )
set("ns", OPENID2_NS);
}
protected DirectError(ParameterList params)
{
super(params);
}
public static DirectError createDirectError(OpenIDException e)
{
return createDirectError(e, false);
}
public static DirectError createDirectError(String msg)
{
return createDirectError(null, msg, false);
}
public static DirectError createDirectError(String msg, boolean compatibility)
{
return createDirectError(null, msg, compatibility);
}
public static DirectError createDirectError(OpenIDException e, boolean compatibility)
{
return createDirectError(e, e.getMessage(), compatibility);
}
public static DirectError createDirectError(OpenIDException e, String msg, boolean compatibility)
{
DirectError err = new DirectError(e, msg, compatibility);
try
{
err.validate();
}
catch (MessageException ex)
{
_log.error("Invalid " + (compatibility? "OpenID1" : "OpenID2") +
" direct error message created for message: " + msg);
}
_log.debug("Created direct error message:\n" + err.keyValueFormEncoding());
return err;
}
public static DirectError createDirectError(ParameterList params)
{
DirectError err = new DirectError(params);
try
{
err.validate();
}
catch (MessageException e)
{
_log.error("Invalid direct error message created: "
+ err.keyValueFormEncoding() );
}
_log.debug("Created direct error message:\n" + err.keyValueFormEncoding());
return err;
}
public OpenIDException getException()
{
return _exception;
}
public void setException(OpenIDException e)
{
this._exception = e;
}
public List getRequiredFields()
{
return requiredFields;
}
public boolean isVersion2()
{
return hasParameter("ns") &&
OPENID2_NS.equals(getParameterValue("ns"));
}
public void setErrorMsg(String msg)
{
set("error", msg);
}
public String getErrorMsg()
{
return getParameterValue("error");
}
public void setContact(String contact)
{
set("contact", contact);
}
public void setReference(String reference)
{
set("reference", reference);
}
}