001package com.nimbusds.openid.connect.provider.spi.internal.sessionstore;
002
003import com.nimbusds.oauth2.sdk.id.Subject;
004import com.nimbusds.openid.connect.sdk.claims.ACR;
005import com.nimbusds.openid.connect.sdk.claims.AMR;
006import org.checkerframework.checker.nullness.qual.Nullable;
007
008import java.time.Instant;
009import java.util.List;
010
011
012/**
013 * Subject (end-user) authentication details.
014 */
015public interface SubjectAuthentication {
016
017
018        /**
019         * Returns the subject.
020         *
021         * @return The subject.
022         */
023        Subject getSubject();
024
025
026        /**
027         * Returns the time of the subject authentication.
028         *
029         * @return The time of the subject authentication.
030         */
031        Instant getTime();
032
033
034        /**
035         * Returns the Authentication Context Class Reference (ACR) for the
036         * subject.
037         *
038         * @return The ACR, {@code null} if not specified.
039         */
040        @Nullable ACR getACR();
041
042
043        /**
044         * Returns the Authentication Method Reference (AMR) list for the
045         * subject.
046         *
047         * @return The AMR list, {@code null} if not specified.
048         */
049        @Nullable List<AMR> getAMRList();
050}