mirror of
https://github.com/pomerium/pomerium.git
synced 2025-06-06 12:52:53 +02:00
* authorize: authorization module adds support for per-route access policy. In this release we support the most common forms of identity based access policy: `allowed_users`, `allowed_groups`, and `allowed_domains`. In future versions, the authorization module will also support context and device based authorization policy and decisions. See website documentation for more details. * docs: updated `env.example` to include a `POLICY` setting example. * docs: added `IDP_SERVICE_ACCOUNT` to `env.example` . * docs: removed `PROXY_ROOT_DOMAIN` settings which has been replaced by `POLICY`. * all: removed `ALLOWED_DOMAINS` settings which has been replaced by `POLICY`. Authorization is now handled by the authorization service and is defined in the policy configuration files. * proxy: `ROUTES` settings which has been replaced by `POLICY`. * internal/log: `http.Server` and `httputil.NewSingleHostReverseProxy` now uses pomerium's logging package instead of the standard library's built in one. Closes #54 Closes #41 Closes #61 Closes #58
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package clients // import "github.com/pomerium/pomerium/proxy/clients"
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/pomerium/pomerium/internal/sessions"
|
|
)
|
|
|
|
// MockAuthenticate provides a mocked implementation of the authenticator interface.
|
|
type MockAuthenticate struct {
|
|
RedeemError error
|
|
RedeemResponse *sessions.SessionState
|
|
RefreshResponse *sessions.SessionState
|
|
RefreshError error
|
|
ValidateResponse bool
|
|
ValidateError error
|
|
CloseError error
|
|
}
|
|
|
|
// Redeem is a mocked authenticator client function.
|
|
func (a MockAuthenticate) Redeem(ctx context.Context, code string) (*sessions.SessionState, error) {
|
|
return a.RedeemResponse, a.RedeemError
|
|
}
|
|
|
|
// Refresh is a mocked authenticator client function.
|
|
func (a MockAuthenticate) Refresh(ctx context.Context, s *sessions.SessionState) (*sessions.SessionState, error) {
|
|
return a.RefreshResponse, a.RefreshError
|
|
}
|
|
|
|
// Validate is a mocked authenticator client function.
|
|
func (a MockAuthenticate) Validate(ctx context.Context, idToken string) (bool, error) {
|
|
return a.ValidateResponse, a.ValidateError
|
|
}
|
|
|
|
// Close is a mocked authenticator client function.
|
|
func (a MockAuthenticate) Close() error { return a.CloseError }
|
|
|
|
// MockAuthorize provides a mocked implementation of the authorizer interface.
|
|
type MockAuthorize struct {
|
|
AuthorizeResponse bool
|
|
AuthorizeError error
|
|
CloseError error
|
|
}
|
|
|
|
// Close is a mocked authorizer client function.
|
|
func (a MockAuthorize) Close() error { return a.CloseError }
|
|
|
|
// Authorize is a mocked authorizer client function.
|
|
func (a MockAuthorize) Authorize(ctx context.Context, route string, s *sessions.SessionState) (bool, error) {
|
|
return a.AuthorizeResponse, a.AuthorizeError
|
|
}
|