package com.airlock.iam.oauth2.domain.service.clientauthentication.noauthentication;

import com.airlock.iam.elog.api.ELogger;
import com.airlock.iam.elog.api.ELoggerFactory;
import com.airlock.iam.oauth2.api.domain.model.clientauthentication.OAuth2ClientAuthentication;
import com.airlock.iam.oauth2.api.domain.service.clientauthentication.OAuth2ClientAuthenticationVerifier;
import com.airlock.iam.oauth2.domain.model.clientauthentication.NoClientAuthenticationPayload;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Optional;

public final class OAuth2NoClientAuthenticationVerifier implements OAuth2ClientAuthenticationVerifier<NoClientAuthenticationPayload> {
   public static final OAuth2NoClientAuthenticationVerifier NO_VERIFIER = new OAuth2NoClientAuthenticationVerifier();
   private static final ELogger LOG = ELoggerFactory.getLogger(OAuth2NoClientAuthenticationVerifier.class);

   public Optional<OAuth2ClientAuthentication> verify(NoClientAuthenticationPayload authenticationPayload) {
      LOG.info("Not verifying an OAuth2 / OpenId Connect request (no verification configured).");
      return Optional.of(OAuth2ClientAuthentication.clientAuthentication(authenticationPayload));
   }

   @SuppressFBWarnings(justification = "generated code")
   private OAuth2NoClientAuthenticationVerifier() {
   }
}
