package org.apereo.cas.adaptors.u2f.storage;
import com.google.common.cache.LoadingCache;
/**
* This is {@link BaseU2FDeviceRepository}.
*
* @author Misagh Moayyed
* @since 5.1.0
*/
public abstract class BaseU2FDeviceRepository implements U2FDeviceRepository {
private final LoadingCache<String, String> requestStorage;
public BaseU2FDeviceRepository(final LoadingCache<String, String> requestStorage) {
this.requestStorage = requestStorage;
}
@Override
public String getDeviceRegistrationRequest(final String requestId, final String username) {
final String request = requestStorage.getUnchecked(requestId);
requestStorage.invalidate(requestId);
requestStorage.cleanUp();
return request;
}
@Override
public String getDeviceAuthenticationRequest(final String requestId, final String username) {
final String request = requestStorage.getUnchecked(requestId);
requestStorage.invalidate(requestId);
requestStorage.cleanUp();
return request;
}
@Override
public void requestDeviceRegistration(final String requestId, final String username, final String registrationJsonData) {
requestStorage.put(requestId, registrationJsonData);
}
@Override
public void requestDeviceAuthentication(final String requestId, final String username, final String registrationJsonData) {
requestStorage.put(requestId, registrationJsonData);
}
}