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

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.oauth2.api.domain.model.clientauthentication.ClientAuthenticationMethod;
import com.airlock.iam.oauth2.api.domain.model.http.OAuth2HttpRequest;
import com.airlock.iam.oauth2.application.configuration.clientauthentication.OAuth2ClientSecretMethodConfig;
import java.util.Optional;

@LogicForConfig(OAuth2ClientSecretMethodConfig.class)
public interface OAuth2ClientSecretMethod {
   Optional<String> getClientIdFromRequest(OAuth2HttpRequest var1);

   Optional<String> getClientSecretFromRequest(OAuth2HttpRequest var1);

   default ClientAuthenticationMethod clientAuthenticationMethod() {
      return new ClientAuthenticationMethod() {
         @Override
         public String getIdentifier() {
            return "client_secret_custom";
         }
      };
   }
}
