mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +00:00 
			
		
		
		
	Support trimming trailing slashes via a mount tuneable to support CMPv2 (#28752)
* Support trimming trailing slashes via a mount tuneable to support CMPv2 * changelog/ * Perform trimming in handleLoginRequest too * Eagerly fetch the mount entry so we only test this once * Add a mount match function that gets path and entry * Update vault/request_handling.go Co-authored-by: Steven Clark <steven.clark@hashicorp.com> * more docs * Some patches (from ENT) didnt apply * patch fail * Update vault/router.go Co-authored-by: Steven Clark <steven.clark@hashicorp.com> * PR feedback * dupe * another dupe * Add support for enabling trim_request_trailing_slashes on mount creation * Fix read mount api returning configuration for trim_request_trailing_slashes * Fix test assertion * Switch enable and tune arguments to BoolPtrVal to allow end-users to specify false flag * Add trim-request-trailing-slashes to the auth enable API and CLI --------- Co-authored-by: Steven Clark <steven.clark@hashicorp.com>
This commit is contained in:
		| @@ -290,23 +290,23 @@ type MountInput struct { | ||||
| } | ||||
|  | ||||
| type MountConfigInput struct { | ||||
| 	Options                   map[string]string       `json:"options" mapstructure:"options"` | ||||
| 	DefaultLeaseTTL           string                  `json:"default_lease_ttl" mapstructure:"default_lease_ttl"` | ||||
| 	Description               *string                 `json:"description,omitempty" mapstructure:"description"` | ||||
| 	MaxLeaseTTL               string                  `json:"max_lease_ttl" mapstructure:"max_lease_ttl"` | ||||
| 	ForceNoCache              bool                    `json:"force_no_cache" mapstructure:"force_no_cache"` | ||||
| 	AuditNonHMACRequestKeys   []string                `json:"audit_non_hmac_request_keys,omitempty" mapstructure:"audit_non_hmac_request_keys"` | ||||
| 	AuditNonHMACResponseKeys  []string                `json:"audit_non_hmac_response_keys,omitempty" mapstructure:"audit_non_hmac_response_keys"` | ||||
| 	ListingVisibility         string                  `json:"listing_visibility,omitempty" mapstructure:"listing_visibility"` | ||||
| 	PassthroughRequestHeaders []string                `json:"passthrough_request_headers,omitempty" mapstructure:"passthrough_request_headers"` | ||||
| 	AllowedResponseHeaders    []string                `json:"allowed_response_headers,omitempty" mapstructure:"allowed_response_headers"` | ||||
| 	TokenType                 string                  `json:"token_type,omitempty" mapstructure:"token_type"` | ||||
| 	AllowedManagedKeys        []string                `json:"allowed_managed_keys,omitempty" mapstructure:"allowed_managed_keys"` | ||||
| 	PluginVersion             string                  `json:"plugin_version,omitempty"` | ||||
| 	UserLockoutConfig         *UserLockoutConfigInput `json:"user_lockout_config,omitempty"` | ||||
| 	DelegatedAuthAccessors    []string                `json:"delegated_auth_accessors,omitempty" mapstructure:"delegated_auth_accessors"` | ||||
| 	IdentityTokenKey          string                  `json:"identity_token_key,omitempty" mapstructure:"identity_token_key"` | ||||
|  | ||||
| 	Options                    map[string]string       `json:"options" mapstructure:"options"` | ||||
| 	DefaultLeaseTTL            string                  `json:"default_lease_ttl" mapstructure:"default_lease_ttl"` | ||||
| 	Description                *string                 `json:"description,omitempty" mapstructure:"description"` | ||||
| 	MaxLeaseTTL                string                  `json:"max_lease_ttl" mapstructure:"max_lease_ttl"` | ||||
| 	ForceNoCache               bool                    `json:"force_no_cache" mapstructure:"force_no_cache"` | ||||
| 	AuditNonHMACRequestKeys    []string                `json:"audit_non_hmac_request_keys,omitempty" mapstructure:"audit_non_hmac_request_keys"` | ||||
| 	AuditNonHMACResponseKeys   []string                `json:"audit_non_hmac_response_keys,omitempty" mapstructure:"audit_non_hmac_response_keys"` | ||||
| 	ListingVisibility          string                  `json:"listing_visibility,omitempty" mapstructure:"listing_visibility"` | ||||
| 	PassthroughRequestHeaders  []string                `json:"passthrough_request_headers,omitempty" mapstructure:"passthrough_request_headers"` | ||||
| 	AllowedResponseHeaders     []string                `json:"allowed_response_headers,omitempty" mapstructure:"allowed_response_headers"` | ||||
| 	TokenType                  string                  `json:"token_type,omitempty" mapstructure:"token_type"` | ||||
| 	AllowedManagedKeys         []string                `json:"allowed_managed_keys,omitempty" mapstructure:"allowed_managed_keys"` | ||||
| 	PluginVersion              string                  `json:"plugin_version,omitempty"` | ||||
| 	UserLockoutConfig          *UserLockoutConfigInput `json:"user_lockout_config,omitempty"` | ||||
| 	DelegatedAuthAccessors     []string                `json:"delegated_auth_accessors,omitempty" mapstructure:"delegated_auth_accessors"` | ||||
| 	IdentityTokenKey           string                  `json:"identity_token_key,omitempty" mapstructure:"identity_token_key"` | ||||
| 	TrimRequestTrailingSlashes *bool                   `json:"trim_request_trailing_slashes,omitempty" mapstructure:"trim_request_trailing_slashes"` | ||||
| 	// Deprecated: This field will always be blank for newer server responses. | ||||
| 	PluginName string `json:"plugin_name,omitempty" mapstructure:"plugin_name"` | ||||
| } | ||||
| @@ -328,19 +328,20 @@ type MountOutput struct { | ||||
| } | ||||
|  | ||||
| type MountConfigOutput struct { | ||||
| 	DefaultLeaseTTL           int                      `json:"default_lease_ttl" mapstructure:"default_lease_ttl"` | ||||
| 	MaxLeaseTTL               int                      `json:"max_lease_ttl" mapstructure:"max_lease_ttl"` | ||||
| 	ForceNoCache              bool                     `json:"force_no_cache" mapstructure:"force_no_cache"` | ||||
| 	AuditNonHMACRequestKeys   []string                 `json:"audit_non_hmac_request_keys,omitempty" mapstructure:"audit_non_hmac_request_keys"` | ||||
| 	AuditNonHMACResponseKeys  []string                 `json:"audit_non_hmac_response_keys,omitempty" mapstructure:"audit_non_hmac_response_keys"` | ||||
| 	ListingVisibility         string                   `json:"listing_visibility,omitempty" mapstructure:"listing_visibility"` | ||||
| 	PassthroughRequestHeaders []string                 `json:"passthrough_request_headers,omitempty" mapstructure:"passthrough_request_headers"` | ||||
| 	AllowedResponseHeaders    []string                 `json:"allowed_response_headers,omitempty" mapstructure:"allowed_response_headers"` | ||||
| 	TokenType                 string                   `json:"token_type,omitempty" mapstructure:"token_type"` | ||||
| 	AllowedManagedKeys        []string                 `json:"allowed_managed_keys,omitempty" mapstructure:"allowed_managed_keys"` | ||||
| 	UserLockoutConfig         *UserLockoutConfigOutput `json:"user_lockout_config,omitempty"` | ||||
| 	DelegatedAuthAccessors    []string                 `json:"delegated_auth_accessors,omitempty" mapstructure:"delegated_auth_accessors"` | ||||
| 	IdentityTokenKey          string                   `json:"identity_token_key,omitempty" mapstructure:"identity_token_key"` | ||||
| 	DefaultLeaseTTL            int                      `json:"default_lease_ttl" mapstructure:"default_lease_ttl"` | ||||
| 	MaxLeaseTTL                int                      `json:"max_lease_ttl" mapstructure:"max_lease_ttl"` | ||||
| 	ForceNoCache               bool                     `json:"force_no_cache" mapstructure:"force_no_cache"` | ||||
| 	AuditNonHMACRequestKeys    []string                 `json:"audit_non_hmac_request_keys,omitempty" mapstructure:"audit_non_hmac_request_keys"` | ||||
| 	AuditNonHMACResponseKeys   []string                 `json:"audit_non_hmac_response_keys,omitempty" mapstructure:"audit_non_hmac_response_keys"` | ||||
| 	ListingVisibility          string                   `json:"listing_visibility,omitempty" mapstructure:"listing_visibility"` | ||||
| 	PassthroughRequestHeaders  []string                 `json:"passthrough_request_headers,omitempty" mapstructure:"passthrough_request_headers"` | ||||
| 	AllowedResponseHeaders     []string                 `json:"allowed_response_headers,omitempty" mapstructure:"allowed_response_headers"` | ||||
| 	TokenType                  string                   `json:"token_type,omitempty" mapstructure:"token_type"` | ||||
| 	AllowedManagedKeys         []string                 `json:"allowed_managed_keys,omitempty" mapstructure:"allowed_managed_keys"` | ||||
| 	UserLockoutConfig          *UserLockoutConfigOutput `json:"user_lockout_config,omitempty"` | ||||
| 	DelegatedAuthAccessors     []string                 `json:"delegated_auth_accessors,omitempty" mapstructure:"delegated_auth_accessors"` | ||||
| 	IdentityTokenKey           string                   `json:"identity_token_key,omitempty" mapstructure:"identity_token_key"` | ||||
| 	TrimRequestTrailingSlashes bool                     `json:"trim_request_trailing_slashes,omitempty" mapstructure:"trim_request_trailing_slashes"` | ||||
|  | ||||
| 	// Deprecated: This field will always be blank for newer server responses. | ||||
| 	PluginName string `json:"plugin_name,omitempty" mapstructure:"plugin_name"` | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Scott Miller
					Scott Miller