package auth

import "go.mongodb.org/mongo-driver/mongo/private/auth"

Package auth is not for public use.

The API for packages in the 'private' directory have no stability guarantee.

The packages within the 'private' directory would normally be put into an 'internal' directory to prohibit their use outside the 'mongo' directory. However, some MongoDB tools require very low-level access to the building blocks of a driver, so we have placed them under 'private' to allow these packages to be imported by projects that need them.

These package APIs may be modified in backwards-incompatible ways at any time.

You are strongly discouraged from directly using any packages under 'private'.

Index

Constants

const GSSAPI = "GSSAPI"

GSSAPI is the mechanism name for GSSAPI.

const MONGODBCR = "MONGODB-CR"

MONGODBCR is the mechanism name for MONGODB-CR.

const MongoDBX509 = "MONGODB-X509"

MongoDBX509 is the mechanism name for MongoDBX509.

const PLAIN = "PLAIN"

PLAIN is the mechanism name for PLAIN.

const SCRAMSHA1 = "SCRAM-SHA-1"

SCRAMSHA1 is the mechanism name for SCRAM-SHA-1.

Functions

func ConductSaslConversation

func ConductSaslConversation(ctx context.Context, c conn.Connection, db string, client SaslClient) error

ConductSaslConversation handles running a sasl conversation with MongoDB.

func NewConnection

func NewConnection(ctx context.Context, authenticator Authenticator, opener conn.Opener, addr model.Addr, opts ...conn.Option) (conn.Connection, error)

NewConnection opens a connection and authenticates it.

func Opener

func Opener(opener conn.Opener, authenticator Authenticator) conn.Opener

Opener returns a connection opener that will open and authenticate the connection.

func RegisterAuthenticatorFactory

func RegisterAuthenticatorFactory(name string, factory AuthenticatorFactory)

RegisterAuthenticatorFactory registers the authenticator factory.

Types

type Authenticator

type Authenticator interface {
	// Auth authenticates the connection.
	Auth(context.Context, conn.Connection) error
}

Authenticator handles authenticating a connection.

func CreateAuthenticator

func CreateAuthenticator(name string, cred *Cred) (Authenticator, error)

CreateAuthenticator creates an authenticator.

type AuthenticatorFactory

type AuthenticatorFactory func(cred *Cred) (Authenticator, error)

AuthenticatorFactory constructs an authenticator.

type Cred

type Cred struct {
	Source      string
	Username    string
	Password    string
	PasswordSet bool
	Props       map[string]string
}

Cred is a user's credential.

type DefaultAuthenticator

type DefaultAuthenticator struct {
	Cred *Cred
}

DefaultAuthenticator uses SCRAM-SHA-1 or MONGODB-CR depending on the server version.

func (*DefaultAuthenticator) Auth

Auth authenticates the connection.

type Error

type Error struct {
	// contains filtered or unexported fields
}

Error is an error that occurred during authentication.

func (*Error) Error

func (e *Error) Error() string

func (*Error) Inner

func (e *Error) Inner() error

Inner returns the wrapped error.

func (*Error) Message

func (e *Error) Message() string

Message returns the message.

type MongoDBCRAuthenticator

type MongoDBCRAuthenticator struct {
	DB       string
	Username string
	Password string
}

MongoDBCRAuthenticator uses the MONGODB-CR algorithm to authenticate a connection.

func (*MongoDBCRAuthenticator) Auth

Auth authenticates the connection.

type MongoDBX509Authenticator

type MongoDBX509Authenticator struct {
	User string
}

MongoDBX509Authenticator uses X.509 certificates over TLS to authenticate a connection.

func (*MongoDBX509Authenticator) Auth

Auth implements the Authenticator interface.

type PlainAuthenticator

type PlainAuthenticator struct {
	Username string
	Password string
}

PlainAuthenticator uses the PLAIN algorithm over SASL to authenticate a connection.

func (*PlainAuthenticator) Auth

Auth authenticates the connection.

type SaslClient

type SaslClient interface {
	Start() (string, []byte, error)
	Next(challenge []byte) ([]byte, error)
	Completed() bool
}

SaslClient is the client piece of a sasl conversation.

type SaslClientCloser

type SaslClientCloser interface {
	SaslClient
	Close()
}

SaslClientCloser is a SaslClient that has resources to clean up.

type ScramSHA1Authenticator

type ScramSHA1Authenticator struct {
	DB       string
	Username string
	Password string

	NonceGenerator func([]byte) error
	// contains filtered or unexported fields
}

ScramSHA1Authenticator uses the SCRAM-SHA-1 algorithm over SASL to authenticate a connection.

func (*ScramSHA1Authenticator) Auth

Auth authenticates the connection.

Source Files

auth.go cred.go default.go doc.go gssapi_not_enabled.go mongodbcr.go plain.go sasl.go scramsha1.go util.go x509.go

Version
v0.0.2
Published
Mar 6, 2018
Platform
darwin/amd64
Imports
17 packages
Last checked
4 seconds ago

Tools for package owners.