/*
 * 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.identity.AuthenticationException
 *  com.l7tech.identity.User
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.policy.assertion.credential.LoginCredentials
 *  com.l7tech.policy.assertion.identity.AuthenticationAssertion
 *  com.l7tech.util.Pair
 *  org.springframework.context.ApplicationContext
 */
package com.l7tech.server.policy.assertion.identity;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.identity.AuthenticationException;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.credential.LoginCredentials;
import com.l7tech.policy.assertion.identity.AuthenticationAssertion;
import com.l7tech.server.identity.AuthenticationResult;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.identity.ServerIdentityAssertion;
import com.l7tech.util.Pair;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.ApplicationContext;

public class ServerAuthenticationAssertion
extends ServerIdentityAssertion<AuthenticationAssertion> {
    public ServerAuthenticationAssertion(AuthenticationAssertion authenticationAssertion, ApplicationContext applicationContext) {
        super(authenticationAssertion, applicationContext);
    }

    @Override
    protected AssertionStatus checkUser(AuthenticationResult authenticationResult) {
        User user = authenticationResult.getUser();
        Goid goid = user.getProviderId();
        if (!goid.equals((Object)((AuthenticationAssertion)this.assertion).getIdentityProviderOid())) {
            this.logAndAudit((AuditDetailMessage)AssertionMessages.SPECIFICUSER_PROVIDER_MISMATCH, Goid.toString((Goid)goid), Goid.toString((Goid)((AuthenticationAssertion)this.assertion).getIdentityProviderOid()));
            return AssertionStatus.AUTH_FAILED;
        }
        return AssertionStatus.NONE;
    }

    @Override
    protected void processAuthFailure(PolicyEnforcementContext policyEnforcementContext, List<Pair<LoginCredentials, AuthenticationException>> list) {
        ArrayList<String> arrayList = new ArrayList<String>();
        ArrayList<String> arrayList2 = new ArrayList<String>();
        for (Pair<LoginCredentials, AuthenticationException> pair : list) {
            arrayList.add(((LoginCredentials)pair.getKey()).getName());
            arrayList2.add(((AuthenticationException)((Object)pair.getValue())).getMessage());
        }
        policyEnforcementContext.setVariable(AuthenticationAssertion.LDAP_PROVIDER_ERROR_LOGIN, arrayList);
        policyEnforcementContext.setVariable(AuthenticationAssertion.LDAP_PROVIDER_ERROR_MESSAGE, arrayList2);
    }
}

