baa89c7c65
* Renamed structs.IntentionWildcard to structs.WildcardSpecifier * Refactor ACL Config Get rid of remnants of enterprise only renaming. Add a WildcardName field for specifying what string should be used to indicate a wildcard. * Add wildcard support in the ACL package For read operations they can call anyAllowed to determine if any read access to the given resource would be granted. For write operations they can call allAllowed to ensure that write access is granted to everything. * Make v1/agent/connect/authorize namespace aware * Update intention ACL enforcement This also changes how intention:read is granted. Before the Intention.List RPC would allow viewing an intention if the token had intention:read on the destination. However Intention.Match allowed viewing if access was allowed for either the source or dest side. Now Intention.List and Intention.Get fall in line with Intention.Matches previous behavior. Due to this being done a few different places ACL enforcement for a singular intention is now done with the CanRead and CanWrite methods on the intention itself. * Refactor Intention.Apply to make things easier to follow.
41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
// +build !consulent
|
|
|
|
package structs
|
|
|
|
import (
|
|
"github.com/hashicorp/consul/acl"
|
|
)
|
|
|
|
// FillAuthzContext can fill in an acl.AuthorizerContext object to setup
|
|
// extra parameters for ACL enforcement. In OSS there is currently nothing
|
|
// extra to be done.
|
|
func (_ *Intention) FillAuthzContext(_ *acl.AuthorizerContext, _ bool) {
|
|
// do nothing
|
|
}
|
|
|
|
// FillAuthzContext can fill in an acl.AuthorizerContext object to setup
|
|
// extra parameters for ACL enforcement. In OSS there is currently nothing
|
|
// extra to be done.
|
|
func (_ *IntentionMatchEntry) FillAuthzContext(_ *acl.AuthorizerContext) {
|
|
// do nothing
|
|
}
|
|
|
|
// FillAuthzContext can fill in an acl.AuthorizerContext object to setup
|
|
// extra parameters for ACL enforcement. In OSS there is currently nothing
|
|
// extra to be done.
|
|
func (_ *IntentionQueryCheck) FillAuthzContext(_ *acl.AuthorizerContext) {
|
|
// do nothing
|
|
}
|
|
|
|
// DefaultNamespaces will populate both the SourceNS and DestinationNS fields
|
|
// if they are empty with the proper defaults.
|
|
func (ixn *Intention) DefaultNamespaces(_ *EnterpriseMeta) {
|
|
// Until we support namespaces, we force all namespaces to be default
|
|
if ixn.SourceNS == "" {
|
|
ixn.SourceNS = IntentionDefaultNamespace
|
|
}
|
|
if ixn.DestinationNS == "" {
|
|
ixn.DestinationNS = IntentionDefaultNamespace
|
|
}
|
|
}
|