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

org.echocat.marquardt.example.persistence.PersistentSessionStore Maven / Gradle / Ivy

/*
 * echocat Marquardt Java SDK, Copyright (c) 2015 echocat
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

package org.echocat.marquardt.example.persistence;

import org.echocat.marquardt.authority.persistence.SessionStore;
import org.echocat.marquardt.example.domain.PersistentSession;
import org.echocat.marquardt.example.persistence.jpa.PersistentSessionRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.Optional;
import java.util.UUID;

@Component
public class PersistentSessionStore implements SessionStore {

    private final PersistentSessionRepository _sessionRepository;

    @Autowired
    public PersistentSessionStore(final PersistentSessionRepository sessionRepository) {
        _sessionRepository = sessionRepository;
    }

    @Override
    public Optional findByCertificate(final byte[] certificate) {
        return _sessionRepository.findByCertificate(certificate);
    }

    @Override
    public boolean existsActiveSession(final UUID userId, final byte[] clientPublicKey, @SuppressWarnings("UseOfObsoleteDateTimeApi") final Date dateToCheck) {
        return _sessionRepository.countByUserIdAndPublicKeyAndExpiresAtGreaterThan(userId, clientPublicKey, dateToCheck) > 0;
    }

    @Override
    public PersistentSession save(final PersistentSession session) {
        return _sessionRepository.save(session);
    }

    @Override
    public PersistentSession createTransient() {
        return new PersistentSession();
    }

    @Override
    public void delete(final PersistentSession session) {
        _sessionRepository.delete(session);
    }

    public void deleteAll() {
        _sessionRepository.deleteAll();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy