package com.airlock.iam.oauth2.infrastructure.factory.rest;

import com.airlock.iam.oauth2.application.configuration.OAuth2AuthorizationServerConfigSpec;
import com.airlock.iam.oauth2.domain.model.clientauthentication.DefaultOAuth2AuthenticationVerifierSource;
import com.airlock.iam.oauth2.domain.model.clientauthentication.OAuth2AuthenticationVerifierSource;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;

public final class OAuth2ClientAuthenticationVerifierSourceModule extends PrivateModule {
   @Exposed
   @Provides
   @RequestScoped
   OAuth2AuthenticationVerifierSource provideOAuth2AuthenticationVerifierSource(OAuth2AuthorizationServerConfigSpec asConfig) {
      return new DefaultOAuth2AuthenticationVerifierSource(asConfig.getClientLoader());
   }

   protected void configure() {
   }
}
