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

de.arbeitsagentur.opdt.keycloak.cassandra.authSession.persistence.entities.AuthenticationSession Maven / Gradle / Ivy

/*
 * Copyright 2022 IT-Systemhaus der Bundesagentur fuer Arbeit
 *
 * 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 de.arbeitsagentur.opdt.keycloak.cassandra.authSession.persistence.entities;

import com.datastax.oss.driver.api.mapper.annotations.ClusteringColumn;
import com.datastax.oss.driver.api.mapper.annotations.CqlName;
import com.datastax.oss.driver.api.mapper.annotations.Entity;
import com.datastax.oss.driver.api.mapper.annotations.PartitionKey;
import lombok.*;
import org.keycloak.sessions.CommonClientSessionModel;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

@EqualsAndHashCode(of = {"parentSessionId", "tabId"})
@Builder(toBuilder = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@CqlName("authentication_sessions")
public class AuthenticationSession {
    @PartitionKey
    private String parentSessionId;

    @ClusteringColumn
    private String tabId;

    @Builder.Default
    private Map executionStatus = new HashMap<>();

    private Long timestamp;

    private String userId;
    private String clientId;
    private String redirectUri;
    private String action;
    private String protocol;

    @Builder.Default
    private Set requiredActions = new HashSet<>();

    @Builder.Default
    private Set clientScopes = new HashSet<>();

    @Builder.Default
    private Map userNotes = new HashMap<>();

    @Builder.Default
    private Map authNotes = new HashMap<>();

    @Builder.Default
    private Map clientNotes = new HashMap<>();

    public Map getExecutionStatus() {
        if (executionStatus == null) {
            executionStatus = new HashMap<>();
        }
        return executionStatus;
    }

    public Set getRequiredActions() {
        if (requiredActions == null) {
            requiredActions = new HashSet<>();
        }
        return requiredActions;
    }

    public Set getClientScopes() {
        if (clientScopes == null) {
            clientScopes = new HashSet<>();
        }
        return clientScopes;
    }

    public Map getUserNotes() {
        if (userNotes == null) {
            userNotes = new HashMap<>();
        }
        return userNotes;
    }

    public Map getAuthNotes() {
        if (authNotes == null) {
            authNotes = new HashMap<>();
        }
        return authNotes;
    }

    public Map getClientNotes() {
        if (clientNotes == null) {
            clientNotes = new HashMap<>();
        }
        return clientNotes;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy