Documentation ¶
Index ¶
- Variables
- func NewServerCredential4Test(cn string) (*CA, *Credential, error)
- func ToTLSConfigWithVerify(caPath, certPath, keyPath string, verifyCN []string, mTLS bool) (*tls.Config, error)
- func WriteFile(fileName string, content []byte) (path string, err error)
- type CA
- type Credential
- func (s *Credential) AddSelfCommonName() error
- func (s *Credential) IsEmpty() bool
- func (s *Credential) IsTLSEnabled() bool
- func (s *Credential) PDSecurityOption() pd.SecurityOption
- func (s *Credential) Scan(value interface{}) error
- func (s *Credential) ToGRPCDialOption() (grpc.DialOption, error)
- func (s *Credential) ToTLSConfig() (*tls.Config, error)
- func (s *Credential) ToTLSConfigWithVerify() (*tls.Config, error)
- func (s Credential) Value() (driver.Value, error)
- type GSSAPI
- type GSSAPIAuthType
- type OAuth2
- type SASL
- type SASLMechanism
- type XDGSCRAMClient
Constants ¶
This section is empty.
Variables ¶
var ( // SHA256 func SHA256 scram.HashGeneratorFcn = func() hash.Hash { return sha256.New() } // SHA512 func SHA512 scram.HashGeneratorFcn = func() hash.Hash { return sha512.New() } )
Functions ¶
func NewServerCredential4Test ¶
func NewServerCredential4Test(cn string) (*CA, *Credential, error)
NewServerCredential4Test return a Credential for testing
Types ¶
type CA ¶
type CA struct { Cert *x509.Certificate CAPEM []byte // contains filtered or unexported fields }
CA represents a certificate authority
func (*CA) GenerateCerts ¶
GenerateCerts returns the PEM contents of a CA certificate and some certificates and private keys per Common Name in commonNames. thanks to https://shaneutt.com/blog/golang-ca-and-signed-cert-go/.
func (*CA) GetPrivKeyPEM ¶
GetPrivKeyPEM returns the PEM contents of the private key.
type Credential ¶
type Credential struct { CAPath string `toml:"ca-path" json:"ca-path"` CertPath string `toml:"cert-path" json:"cert-path"` KeyPath string `toml:"key-path" json:"key-path"` CertAllowedCN []string `toml:"cert-allowed-cn" json:"cert-allowed-cn"` // MTLS indicates whether use mTLS, by default it will affect all connections, // cludings: // 1) connections between TiCDC and TiKV // 2) connections between TiCDC and PD // 3) http server of TiCDC which is used for open API // 4) p2p server of TiCDC which is used sending messages between TiCDC nodes // Todo: just enable mTLS for 3) and 4) by default MTLS bool `toml:"mtls" json:"mtls"` ClientUserRequired bool `toml:"client-user-required" json:"client-user-required"` ClientAllowedUser []string `toml:"client-allowed-user" json:"client-allowed-user"` }
Credential holds necessary path parameter to build a tls.Config
func (*Credential) AddSelfCommonName ¶
func (s *Credential) AddSelfCommonName() error
AddSelfCommonName add Common Name in certificate that specified by s.CertPath to s.CertAllowedCN
func (*Credential) IsEmpty ¶
func (s *Credential) IsEmpty() bool
IsEmpty checks whether Credential is empty or not.
func (*Credential) IsTLSEnabled ¶
func (s *Credential) IsTLSEnabled() bool
IsTLSEnabled checks whether TLS is enabled or not.
func (*Credential) PDSecurityOption ¶
func (s *Credential) PDSecurityOption() pd.SecurityOption
PDSecurityOption creates a new pd SecurityOption from Security
func (*Credential) Scan ¶
func (s *Credential) Scan(value interface{}) error
Scan implements the sql.Scanner interface
func (*Credential) ToGRPCDialOption ¶
func (s *Credential) ToGRPCDialOption() (grpc.DialOption, error)
ToGRPCDialOption constructs a gRPC dial option.
func (*Credential) ToTLSConfig ¶
func (s *Credential) ToTLSConfig() (*tls.Config, error)
ToTLSConfig generates tls's config from *Security
func (*Credential) ToTLSConfigWithVerify ¶
func (s *Credential) ToTLSConfigWithVerify() (*tls.Config, error)
ToTLSConfigWithVerify generates tls's config from *Security and requires the remote common name to be verified.
type GSSAPI ¶
type GSSAPI struct { AuthType GSSAPIAuthType `toml:"sasl-gssapi-auth-type" json:"sasl-gssapi-auth-type"` KeyTabPath string `toml:"sasl-gssapi-keytab-path" json:"sasl-gssapi-keytab-path"` KerberosConfigPath string `toml:"sasl-gssapi-kerberos-config-path" json:"sasl-gssapi-kerberos-config-path"` ServiceName string `toml:"sasl-gssapi-service-name" json:"sasl-gssapi-service-name"` Username string `toml:"sasl-gssapi-user" json:"sasl-gssapi-user"` Password string `toml:"sasl-gssapi-password" json:"sasl-gssapi-password"` Realm string `toml:"sasl-gssapi-realm" json:"sasl-gssapi-realm"` DisablePAFXFAST bool `toml:"sasl-gssapi-disable-pafxfast" json:"sasl-gssapi-disable-pafxfast"` }
GSSAPI holds necessary path parameter to support sasl-gssapi.
type GSSAPIAuthType ¶
type GSSAPIAuthType int
GSSAPIAuthType defines the type of GSSAPI authentication.
const ( // UnknownAuth means the auth type is unknown. UnknownAuth GSSAPIAuthType = 0 // UserAuth means the auth type is user. UserAuth GSSAPIAuthType = sarama.KRB5_USER_AUTH // KeyTabAuth means the auth type is keytab. KeyTabAuth GSSAPIAuthType = sarama.KRB5_KEYTAB_AUTH )
func AuthTypeFromString ¶
func AuthTypeFromString(s string) (GSSAPIAuthType, error)
AuthTypeFromString convent the string to GSSAPIAuthType.
type OAuth2 ¶
type OAuth2 struct { ClientID string ClientSecret string TokenURL string Scopes []string GrantType string Audience string }
OAuth2 holds necessary parameters to support sasl-oauth2.
func (*OAuth2) IsEnable ¶
IsEnable checks whether the OAuth2 is enabled. One of values of ClientID, ClientSecret and TokenURL is not empty means enabled.
func (*OAuth2) SetDefault ¶
func (o *OAuth2) SetDefault()
SetDefault sets the default value of OAuth2.
type SASL ¶
type SASL struct { SASLUser string SASLPassword string SASLMechanism SASLMechanism GSSAPI GSSAPI OAuth2 OAuth2 }
SASL holds necessary path parameter to support sasl-scram
type SASLMechanism ¶
type SASLMechanism string
SASLMechanism defines SASL mechanism.
const ( // UnknownMechanism means the SASL mechanism is unknown. UnknownMechanism SASLMechanism = "" // PlainMechanism means the SASL mechanism is plain. PlainMechanism SASLMechanism = sarama.SASLTypePlaintext // SCRAM256Mechanism means the SASL mechanism is SCRAM-SHA-256. SCRAM256Mechanism SASLMechanism = sarama.SASLTypeSCRAMSHA256 // SCRAM512Mechanism means the SASL mechanism is SCRAM-SHA-512. SCRAM512Mechanism SASLMechanism = sarama.SASLTypeSCRAMSHA512 // GSSAPIMechanism means the SASL mechanism is GSSAPI. GSSAPIMechanism SASLMechanism = sarama.SASLTypeGSSAPI // OAuthMechanism means the SASL mechanism is OAuth2. OAuthMechanism SASLMechanism = sarama.SASLTypeOAuth )
The mechanisms we currently support.
func SASLMechanismFromString ¶
func SASLMechanismFromString(s string) (SASLMechanism, error)
SASLMechanismFromString converts the string to SASL mechanism.
type XDGSCRAMClient ¶
type XDGSCRAMClient struct { *scram.Client *scram.ClientConversation scram.HashGeneratorFcn }
XDGSCRAMClient xdg scram client
func (*XDGSCRAMClient) Begin ¶
func (x *XDGSCRAMClient) Begin(userName, password, authzID string) (err error)
Begin xdg scram client Begin