1
#pragma once
2

            
3
#include "envoy/extensions/http/injected_credentials/generic/v3/generic.pb.h"
4
#include "envoy/extensions/http/injected_credentials/generic/v3/generic.pb.validate.h"
5

            
6
#include "source/common/http/headers.h"
7
#include "source/extensions/http/injected_credentials/common/factory.h"
8
#include "source/extensions/http/injected_credentials/common/factory_base.h"
9
#include "source/extensions/http/injected_credentials/generic/generic_impl.h"
10

            
11
namespace Envoy {
12
namespace Extensions {
13
namespace Http {
14
namespace InjectedCredentials {
15
namespace Generic {
16

            
17
using envoy::extensions::http::injected_credentials::generic::v3::Generic;
18

            
19
class GenericCredentialInjectorFactory : public Common::CredentialInjectorFactoryBase<Generic> {
20
public:
21
  GenericCredentialInjectorFactory()
22
6
      : CredentialInjectorFactoryBase("envoy.http.injected_credentials.generic") {}
23

            
24
private:
25
  Common::CredentialInjectorSharedPtr
26
  createCredentialInjectorFromProtoTyped(const Generic& config, const std::string& stats_prefix,
27
                                         Server::Configuration::ServerFactoryContext& context,
28
                                         Init::Manager& init_manager) override;
29
};
30

            
31
DECLARE_FACTORY(GenericCredentialInjectorFactory);
32

            
33
} // namespace Generic
34
} // namespace InjectedCredentials
35
} // namespace Http
36
} // namespace Extensions
37
} // namespace Envoy