package org.apereo.cas.logout; import org.apache.commons.lang3.StringUtils; import org.apereo.cas.util.http.HttpMessage; import org.springframework.http.MediaType; import java.net.URL; /** * A logout http message that is accompanied by a special content type * and formatting. * @author Misagh Moayyed * @since 4.1.0 */ public class LogoutHttpMessage extends HttpMessage { private static final long serialVersionUID = 399581521957873727L; /** The parameter name that contains the logout request. */ private final String logoutParameterName = "logoutRequest"; private boolean prefixLogoutParameterName = true; /** * Constructs a logout message. * * @param url The url to send the message to * @param message Message to send to the url * @param asynchronous the asynchronous */ public LogoutHttpMessage(final URL url, final String message, final boolean asynchronous) { super(url, message, asynchronous); setContentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE); } /** * {@inheritDoc}. * Prepends the string "{@code logoutRequest=}" to the message body. */ @Override protected String formatOutputMessageInternal(final String message) { return (this.prefixLogoutParameterName ? this.logoutParameterName + '=' : StringUtils.EMPTY) + super.formatOutputMessageInternal(message); } public void setPrefixLogoutParameterName(final boolean prefixLogoutParameterName) { this.prefixLogoutParameterName = prefixLogoutParameterName; } public String getLogoutParameterName() { return logoutParameterName; } }