/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.AssertionMessages
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.xmlsec.SecureConversation
 *  com.l7tech.security.xml.decorator.DecorationRequirements
 *  com.l7tech.security.xml.decorator.DecorationRequirements$SecureConversationSession
 *  com.l7tech.util.CausedIOException
 */
package com.l7tech.server.policy.assertion.xmlsec;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.xmlsec.SecureConversation;
import com.l7tech.security.xml.decorator.DecorationRequirements;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractServerAssertion;
import com.l7tech.server.policy.assertion.xmlsec.ServerSecureConversation;
import com.l7tech.server.secureconversation.SecureConversationSession;
import com.l7tech.util.CausedIOException;
import java.io.IOException;
import org.xml.sax.SAXException;

class c
extends AbstractServerAssertion<SecureConversation> {
    final SecureConversationSession val$session;

    c(ServerSecureConversation serverSecureConversation, SecureConversation secureConversation, SecureConversationSession secureConversationSession) {
        this.val$session = secureConversationSession;
        super(secureConversation);
    }

    @Override
    public AssertionStatus checkRequest(PolicyEnforcementContext policyEnforcementContext) throws IOException {
        DecorationRequirements decorationRequirements;
        try {
            if (!policyEnforcementContext.getResponse().isSoap()) {
                this.logAndAudit((AuditDetailMessage)AssertionMessages.SC_UNABLE_TO_ATTACH_SC_TOKEN);
                return AssertionStatus.NOT_APPLICABLE;
            }
        }
        catch (IOException iOException) {
            throw c.a(iOException);
        }
        try {
            decorationRequirements = policyEnforcementContext.getResponse().getSecurityKnob().getOrMakeDecorationRequirements();
        }
        catch (SAXException sAXException) {
            this.logAndAudit((AuditDetailMessage)AssertionMessages.SC_UNABLE_TO_ATTACH_SC_TOKEN);
            throw new CausedIOException((Throwable)sAXException);
        }
        decorationRequirements.setSignTimestamp(true);
        decorationRequirements.setSecureConversationSession((DecorationRequirements.SecureConversationSession)this.val$session);
        return AssertionStatus.NONE;
    }

    private static IOException a(IOException iOException) {
        return iOException;
    }
}

