package org.jooby.pac4j;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import javax.inject.Singleton;
import org.jooby.test.ServerFeature;
import org.junit.Test;
import org.pac4j.core.profile.CommonProfile;
public class AuthWithStoreFeature extends ServerFeature {
@Singleton
public static class InMemory implements AuthStore<CommonProfile> {
private Map<String, CommonProfile> profiles = new HashMap<>();
@Override
public Optional<CommonProfile> get(final String id) throws Exception {
return Optional.of(profiles.get(id));
}
@Override
public void set(final CommonProfile profile) throws Exception {
profiles.put(profile.getId(), profile);
}
@Override
public Optional<CommonProfile> unset(final String id) throws Exception {
return Optional.ofNullable(profiles.remove(id));
}
}
{
use(new Auth().form().store(InMemory.class));
get("/", req -> req.require(CommonProfile.class).getId());
}
@Test
public void auth() throws Exception {
request()
.get("/auth?username=test&password=test")
.expect("test");
}
}