| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package main |
| |
| import ( |
| "os" |
| |
| hclog "github.com/hashicorp/go-hclog" |
| "github.com/hashicorp/vault/api" |
| "github.com/hashicorp/vault/builtin/credential/radius" |
| "github.com/hashicorp/vault/sdk/plugin" |
| ) |
| |
| func main() { |
| apiClientMeta := &api.PluginAPIClientMeta{} |
| flags := apiClientMeta.FlagSet() |
| flags.Parse(os.Args[1:]) |
| |
| tlsConfig := apiClientMeta.GetTLSConfig() |
| tlsProviderFunc := api.VaultPluginTLSProvider(tlsConfig) |
| |
| if err := plugin.ServeMultiplex(&plugin.ServeOpts{ |
| BackendFactoryFunc: radius.Factory, |
| // set the TLSProviderFunc so that the plugin maintains backwards |
| // compatibility with Vault versions that don’t support plugin AutoMTLS |
| TLSProviderFunc: tlsProviderFunc, |
| }); err != nil { |
| logger := hclog.New(&hclog.LoggerOptions{}) |
| |
| logger.Error("plugin shutting down", "error", err) |
| os.Exit(1) |
| } |
| } |