package org.pac4j.saml.sso.impl;
import org.opensaml.saml.saml2.core.LogoutRequest;
import org.pac4j.core.credentials.Credentials;
import org.pac4j.saml.context.SAML2MessageContext;
import org.pac4j.saml.sso.SAML2MessageReceiver;
import org.pac4j.saml.sso.SAML2MessageSender;
import org.pac4j.saml.sso.SAML2ProfileHandler;
/**
* Handler capable of sending and receiving SAML logout messages
*
* @author Matthieu Taggiasco
* @since 2.0.0
*/
public class SAML2LogoutProfileHandler implements SAML2ProfileHandler<LogoutRequest> {
private final SAML2MessageSender<LogoutRequest> messageSender;
private final SAML2MessageReceiver messageReceiver;
public SAML2LogoutProfileHandler(final SAML2MessageSender<LogoutRequest> messageSender,
final SAML2MessageReceiver messageReceiver) {
this.messageSender = messageSender;
this.messageReceiver = messageReceiver;
}
@Override
public void send(final SAML2MessageContext context, final LogoutRequest msg, final Object data) {
this.messageSender.sendMessage(context, msg, data);
}
@Override
public Credentials receive(final SAML2MessageContext context) {
return this.messageReceiver.receiveMessage(context);
}
}