utils.go 846 B

123456789101112131415161718192021222324252627
  1. package apiserver
  2. import (
  3. "crypto/tls"
  4. "fmt"
  5. log "github.com/sirupsen/logrus"
  6. )
  7. func getTLSAuthType(authType string) (tls.ClientAuthType, error) {
  8. switch authType {
  9. case "NoClientCert":
  10. return tls.NoClientCert, nil
  11. case "RequestClientCert":
  12. log.Warn("RequestClientCert is insecure, please use VerifyClientCertIfGiven or RequireAndVerifyClientCert instead")
  13. return tls.RequestClientCert, nil
  14. case "RequireAnyClientCert":
  15. log.Warn("RequireAnyClientCert is insecure, please use VerifyClientCertIfGiven or RequireAndVerifyClientCert instead")
  16. return tls.RequireAnyClientCert, nil
  17. case "VerifyClientCertIfGiven":
  18. return tls.VerifyClientCertIfGiven, nil
  19. case "RequireAndVerifyClientCert":
  20. return tls.RequireAndVerifyClientCert, nil
  21. default:
  22. return 0, fmt.Errorf("unknown TLS client_verification value: %s", authType)
  23. }
  24. }