Documentation ¶
Overview ¶
Package enforcerproxy :: This is the implementation of the RPC client It implements the interface of Trireme Enforcer and forwards these requests to the actual remote enforcer instead of implementing locally
Index ¶
- Variables
- func NewDefaultProxyEnforcer(serverID string, collector collector.EventCollector, secrets secrets.Secrets, ...) enforcer.PolicyEnforcer
- func NewProxyEnforcer(mutualAuth bool, filterQueue *fqconfig.FilterQueue, ...) enforcer.PolicyEnforcer
- func NewTestEnforcerLauncher() enforcer.PolicyEnforcer
- type ProxyInfo
- func (s *ProxyInfo) Enforce(contextID string, puInfo *policy.PUInfo) error
- func (s *ProxyInfo) GetFilterQueue() *fqconfig.FilterQueue
- func (s *ProxyInfo) InitRemoteEnforcer(contextID string) error
- func (s *ProxyInfo) Start() error
- func (s *ProxyInfo) Stop() error
- func (s *ProxyInfo) Unenforce(contextID string) error
- type StatsServer
- type TestEnforcerLauncher
Constants ¶
This section is empty.
Variables ¶
var ErrEnforceFailed = errors.New("Failed to enforce rules")
ErrEnforceFailed exported
var ErrExpectedEnforcer = errors.New("Process was not launched")
ErrExpectedEnforcer exported
var ErrFailedtoLaunch = errors.New("Failed to Launch")
ErrFailedtoLaunch exported.
var ErrInitFailed = errors.New("Failed remote Init")
ErrInitFailed exported
Functions ¶
func NewDefaultProxyEnforcer ¶
func NewDefaultProxyEnforcer(serverID string, collector collector.EventCollector, secrets secrets.Secrets, rpchdl rpcwrapper.RPCClient, procMountPoint string, ) enforcer.PolicyEnforcer
NewDefaultProxyEnforcer This is the default datapth method. THis is implemented to keep the interface consistent whether we are local or remote enforcer.
func NewProxyEnforcer ¶
func NewProxyEnforcer(mutualAuth bool, filterQueue *fqconfig.FilterQueue, collector collector.EventCollector, service enforcer.PacketProcessor, secrets secrets.Secrets, serverID string, validity time.Duration, rpchdl rpcwrapper.RPCClient, cmdArg string, procMountPoint string, externalIPCacheTimeout time.Duration, ) enforcer.PolicyEnforcer
NewProxyEnforcer creates a new proxy to remote enforcers.
func NewTestEnforcerLauncher ¶
func NewTestEnforcerLauncher() enforcer.PolicyEnforcer
NewTestEnforcerLauncher mocks an enforcer
Types ¶
type ProxyInfo ¶
type ProxyInfo struct { MutualAuth bool Secrets secrets.Secrets sync.Mutex // contains filtered or unexported fields }
ProxyInfo is the struct used to hold state about active enforcers in the system
func (*ProxyInfo) GetFilterQueue ¶
func (s *ProxyInfo) GetFilterQueue() *fqconfig.FilterQueue
GetFilterQueue returns the current FilterQueueConfig.
func (*ProxyInfo) InitRemoteEnforcer ¶
InitRemoteEnforcer method makes a RPC call to the remote enforcer
type StatsServer ¶
type StatsServer struct {
// contains filtered or unexported fields
}
StatsServer This struct is a receiver for Statsserver and maintains a handle to the RPC StatsServer.
func (*StatsServer) GetStats ¶
func (r *StatsServer) GetStats(req rpcwrapper.Request, resp *rpcwrapper.Response) error
GetStats is the function called from the remoteenforcer when it has new flow events to publish.
type TestEnforcerLauncher ¶
type TestEnforcerLauncher interface { enforcer.PolicyEnforcer MockEnforce(t *testing.T, impl func(contextID string, puInfo *policy.PUInfo) error) MockUnenforce(t *testing.T, impl func(contextID string) error) MockGetFilterQueue(t *testing.T, impl func() *fqconfig.FilterQueue) MockStart(t *testing.T, impl func() error) MockStop(t *testing.T, impl func() error) }
TestEnforcerLauncher is a mock