All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.unicon.cas.mfa.authentication.MultiFactorAuthenticationRequestContext Maven / Gradle / Ivy

Go to download

This module is intended to include all the Java you need to add to a CAS implementation to take advantage of the extended multifactor authentication features in this project.

There is a newer version: 2.0.0-RC3
Show newest version
package net.unicon.cas.mfa.authentication;

import net.unicon.cas.mfa.web.support.MultiFactorAuthenticationSupportingWebApplicationService;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.Ordered;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * Represents a single mfa request by wrapping
 * {@link net.unicon.cas.mfa.web.support.MultiFactorAuthenticationSupportingWebApplicationService}.
 * 

* Adds implementations of {@code equals} and {@code hashcode} to ensure the uniqueness of * one mfa method per service per request origination source. *

* Implements {@link org.springframework.core.Ordered} to assist implementations of * {@link net.unicon.cas.mfa.authentication.RequestedAuthenticationMethodRankingStrategy} do * the ranking if they choose to use this abstraction. * * @author Dmitriy Kopylenko * @author Unicon inc. */ public final class MultiFactorAuthenticationRequestContext implements Serializable, Ordered { private static final Logger LOGGER = LoggerFactory.getLogger(MultiFactorAuthenticationRequestContext.class); private static final long serialVersionUID = 3895119051289676064L; private final MultiFactorAuthenticationSupportingWebApplicationService mfaService; private final int rank; /** * Ctor. Treats zero or negative rank as undefined * * @param mfaService target mfa service * @param rank the rank value of this request */ public MultiFactorAuthenticationRequestContext(@NotNull final MultiFactorAuthenticationSupportingWebApplicationService mfaService, @Min(1) final int rank) { this.mfaService = mfaService; this.rank = rank; } public MultiFactorAuthenticationSupportingWebApplicationService getMfaService() { return this.mfaService; } @Override public int getOrder() { return this.rank; } @Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final MultiFactorAuthenticationRequestContext that = (MultiFactorAuthenticationRequestContext) o; return this.getMfaService().equals(that.getMfaService()); } @Override public int hashCode() { final HashCodeBuilder builder = new HashCodeBuilder(13, 133); return builder.append(this.mfaService.getAuthenticationMethod()) .append(this.mfaService.getId()) .append(this.mfaService.getAuthenticationMethodSource()) .toHashCode(); } @Override public String toString() { final ToStringBuilder builder = new ToStringBuilder(ToStringStyle.DEFAULT_STYLE); return builder.append(this.mfaService.getId()) .append(this.mfaService.getAuthenticationMethod()) .append(this.mfaService.getAuthenticationMethodSource()) .toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy