com.helger.security.authentication.result.AuthIdentificationResult Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ph-security Show documentation
Show all versions of ph-security Show documentation
Special Java 1.8+ Library with security related functionality
The newest version!
/*
* Copyright (C) 2014-2024 Philip Helger (www.helger.com)
* philip[at]helger[dot]com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.helger.security.authentication.result;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.helger.commons.ValueEnforcer;
import com.helger.commons.state.ISuccessIndicator;
import com.helger.commons.string.ToStringGenerator;
import com.helger.security.authentication.credentials.ICredentialValidationResult;
/**
* This class contains the overall authentication result.
*
* @author Philip Helger
*/
public class AuthIdentificationResult implements ISuccessIndicator
{
private final IAuthToken m_aAuthToken;
private final ICredentialValidationResult m_aCredentialValidationFailure;
/**
* Constructor.
*
* @param aAuthToken
* The auth token. May not be null
in case of success.
* Must be null
in case of failure.
* @param aCredentialValidationFailure
* The validation failure. May not be null
in case of
* failure. Must be null
in case of success.
*/
protected AuthIdentificationResult (@Nullable final IAuthToken aAuthToken,
@Nullable final ICredentialValidationResult aCredentialValidationFailure)
{
ValueEnforcer.isFalse (aAuthToken == null && aCredentialValidationFailure == null, "One parameter must be set");
ValueEnforcer.isFalse (aAuthToken != null && aCredentialValidationFailure != null, "Only one parameter may be set");
if (aCredentialValidationFailure != null && aCredentialValidationFailure.isSuccess ())
throw new IllegalStateException ("Don't call this method for successfuly credential validation!");
m_aAuthToken = aAuthToken;
m_aCredentialValidationFailure = aCredentialValidationFailure;
}
public boolean isSuccess ()
{
return m_aAuthToken != null;
}
@Override
public boolean isFailure ()
{
return m_aCredentialValidationFailure != null;
}
/**
* @return The auth token in case of successful identification or
* null
in case of an error.
*/
@Nullable
public IAuthToken getAuthToken ()
{
return m_aAuthToken;
}
/**
* @return The credential validation failure or null
in case of
* success.
*/
@Nullable
public ICredentialValidationResult getCredentialValidationFailure ()
{
return m_aCredentialValidationFailure;
}
@Override
public String toString ()
{
return new ToStringGenerator (this).append ("AuthToken", m_aAuthToken)
.append ("CredentialValidationFailure", m_aCredentialValidationFailure)
.getToString ();
}
/**
* Factory method for success authentication.
*
* @param aAuthToken
* The auth token. May not be null
.
* @return Never null
.
*/
@Nonnull
public static AuthIdentificationResult createSuccess (@Nonnull final IAuthToken aAuthToken)
{
ValueEnforcer.notNull (aAuthToken, "AuthToken");
return new AuthIdentificationResult (aAuthToken, null);
}
/**
* Factory method for error in authentication.
*
* @param aCredentialValidationFailure
* The validation failure. May not be null
in case of
* failure!
* @return Never null
.
*/
@Nonnull
public static AuthIdentificationResult createFailure (@Nonnull final ICredentialValidationResult aCredentialValidationFailure)
{
ValueEnforcer.notNull (aCredentialValidationFailure, "CredentialValidationFailure");
return new AuthIdentificationResult (null, aCredentialValidationFailure);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy