class SAML2WebSSOMessageSender extends AbstractSAML2MessageSender<AuthnRequest> {

    /**
     * <p>Constructor for SAML2WebSSOMessageSender.</p>
     *
     * @param signatureSigningParametersProvider a {@link SignatureSigningParametersProvider} object
     * @param destinationBindingType a {@link String} object
     * @param signErrorResponses a boolean
     * @param isAuthnRequestSigned a boolean
     */
    public SAML2WebSSOMessageSender(final SignatureSigningParametersProvider signatureSigningParametersProvider,
                                    final String destinationBindingType,
                                    final boolean signErrorResponses,
                                    final boolean isAuthnRequestSigned) {
        super(signatureSigningParametersProvider, destinationBindingType, signErrorResponses, isAuthnRequestSigned);
    }

    /** {@inheritDoc} */
    @Override
    protected boolean mustSignRequest(final SPSSODescriptor spDescriptor, final IDPSSODescriptor idpssoDescriptor) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override
    protected Endpoint getEndpoint(final SAML2MessageContext context) {
        return context.getIDPSingleSignOnService(destinationBindingType);
    }
}

        var signOutboundContext = false;
        if (this.isRequestSigned) {
            LOGGER.debug("Requests are expected to be always signed before submission");
            signOutboundContext = true;
        } else if (spDescriptor.isAuthnRequestsSigned()) {
            LOGGER.debug("The service provider metadata indicates that authn requests are signed");
            signOutboundContext = true;
        } else if (idpssoDescriptor.getWantAuthnRequestsSigned()) {
            LOGGER.debug("The identity provider metadata indicates that authn requests may be signed");
            signOutboundContext = true;
        }
        return signOutboundContext;
    
<methods>public non-sealed void <init>() ,public void sendMessage(org.pac4j.saml.context.SAML2MessageContext, org.opensaml.saml.saml2.core.AuthnRequest, java.lang.Object) <variables>protected final non-sealed java.lang.String destinationBindingType,protected final non-sealed boolean isRequestSigned,protected final non-sealed boolean signErrorResponses,protected final non-sealed org.pac4j.saml.crypto.SignatureSigningParametersProvider signatureSigningParametersProvider