001 package com.nimbusds.openid.connect.sdk; 002 003 004 import net.jcip.annotations.Immutable; 005 006 import com.nimbusds.openid.connect.sdk.claims.ACR; 007 import com.nimbusds.openid.connect.sdk.claims.ClaimRequirement; 008 009 010 /** 011 * Authentication Context Class Reference (ACR) request. 012 * 013 * @author Vladimir Dzhuvinov 014 */ 015 @Immutable 016 public final class ACRRequest { 017 018 019 /** 020 * The requirement type. 021 */ 022 private final ClaimRequirement requirement; 023 024 025 /** 026 * The requested ACR values. 027 */ 028 private final ACR[] values; 029 030 031 /** 032 * Creates a new Authentication Context Class Reference (ACR) request. 033 * 034 * @param requirement The claim requirement. Must not be {@code null}. 035 * @param values The requested ACR values, in order of preference. 036 * Must not be {@code null}. 037 */ 038 public ACRRequest(final ClaimRequirement requirement, final ACR[] values) { 039 040 if (requirement == null) 041 throw new IllegalArgumentException("The ACR claim requirement must not be null"); 042 043 this.requirement = requirement; 044 045 046 if (values == null) 047 throw new IllegalArgumentException("The requested ACR values must not be null"); 048 049 this.values = values; 050 } 051 052 053 /** 054 * Gets the ACR claim requirement. 055 * 056 * @return The claim requirement. 057 */ 058 public ClaimRequirement getRequirement() { 059 060 return requirement; 061 } 062 063 064 /** 065 * Gets the requested ACR values. 066 * 067 * @return The requested ACR values, in order of preference. 068 */ 069 public ACR[] getValues() { 070 071 return values; 072 } 073 }