/* © SRSoftware 2024 */ package de.srsoftware.oidc.api; import de.srsoftware.oidc.api.data.AccessToken; import de.srsoftware.oidc.api.data.User; import java.util.List; import java.util.Optional; import java.util.Set; public interface UserService { /** * create a new access token for a given user * @param user * @return */ public AccessToken accessToken(User user); public Optional consumeToken(String accessToken); public UserService delete(User user); /** * return the user identified by its access token * @param accessToken * @return */ public Optional forToken(String accessToken); public UserService init(User defaultUser); public List list(); public Set find(String idOrEmail); public Optional load(String id); public Optional load(String username, String password); public boolean passwordMatches(String plaintextPassword, User user); public T save(User user); public T updatePassword(User user, String plaintextPassword); }