Documentation
¶
Overview ¶
Package middleware provides gRPC middleware for the Flight SQL server.
Index ¶
- func AuthenticatedUser(ctx context.Context) string
- func GetRoles(ctx context.Context) ([]string, bool)
- func GetUser(ctx context.Context) (string, bool)
- type AuthMiddleware
- func (m *AuthMiddleware) CreateSessionToken(user string) string
- func (m *AuthMiddleware) HandleOAuth2Authorize(w http.ResponseWriter, r *http.Request)
- func (m *AuthMiddleware) HandleOAuth2Token(w http.ResponseWriter, r *http.Request)
- func (m *AuthMiddleware) StreamInterceptor() grpc.StreamServerInterceptor
- func (m *AuthMiddleware) UnaryInterceptor() grpc.UnaryServerInterceptor
- func (m *AuthMiddleware) ValidateHandshakePayload(payload []byte) (string, error)
- type LoggingMiddleware
- type MetricsCollector
- type MetricsMiddleware
- type OAuth2Token
- type RecoveryMiddleware
- type Timer
- type TokenStore
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthenticatedUser ¶
AuthenticatedUser returns the user‐id (JWT "sub") previously placed in the context by the authentication middleware, or "" if absent.
Types ¶
type AuthMiddleware ¶
type AuthMiddleware struct {
HSKey []byte
RSKey interface{}
Iss string
Aud string
// contains filtered or unexported fields
}
AuthMiddleware provides authentication middleware.
func NewAuthMiddleware ¶
func NewAuthMiddleware(cfg config.AuthConfig, logger zerolog.Logger) *AuthMiddleware
NewAuthMiddleware creates a new authentication middleware.
func (*AuthMiddleware) CreateSessionToken ¶
func (m *AuthMiddleware) CreateSessionToken(user string) string
CreateSessionToken stores a new session token for the given user.
func (*AuthMiddleware) HandleOAuth2Authorize ¶
func (m *AuthMiddleware) HandleOAuth2Authorize(w http.ResponseWriter, r *http.Request)
HandleOAuth2Authorize handles the OAuth2 authorization endpoint
func (*AuthMiddleware) HandleOAuth2Token ¶
func (m *AuthMiddleware) HandleOAuth2Token(w http.ResponseWriter, r *http.Request)
HandleOAuth2Token handles the OAuth2 token endpoint
func (*AuthMiddleware) StreamInterceptor ¶
func (m *AuthMiddleware) StreamInterceptor() grpc.StreamServerInterceptor
StreamInterceptor returns a stream server interceptor for authentication.
func (*AuthMiddleware) UnaryInterceptor ¶
func (m *AuthMiddleware) UnaryInterceptor() grpc.UnaryServerInterceptor
UnaryInterceptor returns a unary server interceptor for authentication.
func (*AuthMiddleware) ValidateHandshakePayload ¶
func (m *AuthMiddleware) ValidateHandshakePayload(payload []byte) (string, error)
ValidateHandshakePayload validates the handshake payload and returns the authenticated user identity.
type LoggingMiddleware ¶
type LoggingMiddleware struct {
// contains filtered or unexported fields
}
LoggingMiddleware provides request logging middleware.
func NewLoggingMiddleware ¶
func NewLoggingMiddleware(logger zerolog.Logger) *LoggingMiddleware
NewLoggingMiddleware creates a new logging middleware.
func (*LoggingMiddleware) StreamInterceptor ¶
func (m *LoggingMiddleware) StreamInterceptor() grpc.StreamServerInterceptor
StreamInterceptor returns a stream server interceptor for logging.
func (*LoggingMiddleware) UnaryInterceptor ¶
func (m *LoggingMiddleware) UnaryInterceptor() grpc.UnaryServerInterceptor
UnaryInterceptor returns a unary server interceptor for logging.
type MetricsCollector ¶
type MetricsCollector interface {
IncrementCounter(name string, labels ...string)
RecordHistogram(name string, value float64, labels ...string)
RecordGauge(name string, value float64, labels ...string)
StartTimer(name string) Timer
}
MetricsCollector defines the interface for collecting metrics.
type MetricsMiddleware ¶
type MetricsMiddleware struct {
// contains filtered or unexported fields
}
MetricsMiddleware provides metrics collection middleware.
func NewMetricsMiddleware ¶
func NewMetricsMiddleware(collector MetricsCollector) *MetricsMiddleware
NewMetricsMiddleware creates a new metrics middleware.
func (*MetricsMiddleware) StreamInterceptor ¶
func (m *MetricsMiddleware) StreamInterceptor() grpc.StreamServerInterceptor
StreamInterceptor returns a stream server interceptor for metrics.
func (*MetricsMiddleware) UnaryInterceptor ¶
func (m *MetricsMiddleware) UnaryInterceptor() grpc.UnaryServerInterceptor
UnaryInterceptor returns a unary server interceptor for metrics.
type OAuth2Token ¶
type OAuth2Token struct {
AccessToken string `json:"access_token"`
TokenType string `json:"token_type"`
RefreshToken string `json:"refresh_token,omitempty"`
ExpiresAt time.Time `json:"expires_at"`
Scope string `json:"scope,omitempty"`
UserID string `json:"user_id,omitempty"`
}
OAuth2Token represents an OAuth2 token with additional metadata
type RecoveryMiddleware ¶
type RecoveryMiddleware struct {
// contains filtered or unexported fields
}
RecoveryMiddleware provides panic recovery middleware.
func NewRecoveryMiddleware ¶
func NewRecoveryMiddleware(logger zerolog.Logger) *RecoveryMiddleware
NewRecoveryMiddleware creates a new recovery middleware.
func (*RecoveryMiddleware) StreamInterceptor ¶
func (m *RecoveryMiddleware) StreamInterceptor() grpc.StreamServerInterceptor
StreamInterceptor returns a stream server interceptor for panic recovery.
func (*RecoveryMiddleware) UnaryInterceptor ¶
func (m *RecoveryMiddleware) UnaryInterceptor() grpc.UnaryServerInterceptor
UnaryInterceptor returns a unary server interceptor for panic recovery.
type TokenStore ¶
type TokenStore struct {
// contains filtered or unexported fields
}
TokenStore manages OAuth2 tokens