package io.budgetapp.auth; import io.budgetapp.model.User; import io.budgetapp.service.FinanceService; import io.dropwizard.auth.AuthenticationException; import io.dropwizard.auth.Authenticator; import io.dropwizard.hibernate.UnitOfWork; import java.util.Optional; /** * */ public class TokenAuthenticator implements Authenticator<String, User> { private final FinanceService financeService; public TokenAuthenticator(FinanceService financeService) { this.financeService = financeService; } @UnitOfWork @Override public Optional<User> authenticate(String token) throws AuthenticationException { Optional<User> option = financeService.findUserByToken(token); if(option.isPresent()) { return Optional.of(option.get()); } else { return Optional.empty(); } } }