65845c7531
* VAULT-1564 report in-flight requests * adding a changelog * Changing some variable names and fixing comments * minor style change * adding unauthenticated support for in-flight-req * adding documentation for the listener.profiling stanza * adding an atomic counter for the inflight requests addressing comments * addressing comments * logging completed requests * fixing a test * providing log_requests_info as a config option to determine at which level requests should be logged * removing a member and a method from the StatusHeaderResponseWriter struct * adding api docks * revert changes in NewHTTPResponseWriter * Fix logging invalid log_requests_info value * Addressing comments * Fixing a test * use an tomic value for logRequestsInfo, and moving the CreateClientID function to Core * fixing go.sum * minor refactoring * protecting InFlightRequests from data race * another try on fixing a data race * another try to fix a data race * addressing comments * fixing couple of tests * changing log_requests_info to log_requests_level * minor style change * fixing a test * removing the lock in InFlightRequests * use single-argument form for interface assertion * adding doc for the new configuration paramter * adding the new doc to the nav data file * minor fix
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package http
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/hashicorp/vault/internalshared/configutil"
|
|
"github.com/hashicorp/vault/vault"
|
|
)
|
|
|
|
func TestInFlightRequestUnauthenticated(t *testing.T) {
|
|
conf := &vault.CoreConfig{}
|
|
core, _, token := vault.TestCoreUnsealedWithConfig(t, conf)
|
|
ln, addr := TestServer(t, core)
|
|
TestServerAuth(t, addr, token)
|
|
|
|
// Default: Only authenticated access
|
|
resp := testHttpGet(t, "", addr+"/v1/sys/in-flight-req")
|
|
testResponseStatus(t, resp, 403)
|
|
resp = testHttpGet(t, token, addr+"/v1/sys/in-flight-req")
|
|
testResponseStatus(t, resp, 200)
|
|
|
|
// Close listener
|
|
ln.Close()
|
|
|
|
// Setup new custom listener with unauthenticated metrics access
|
|
ln, addr = TestListener(t)
|
|
props := &vault.HandlerProperties{
|
|
Core: core,
|
|
ListenerConfig: &configutil.Listener{
|
|
InFlightRequestLogging: configutil.ListenerInFlightRequestLogging{
|
|
UnauthenticatedInFlightAccess: true,
|
|
},
|
|
},
|
|
}
|
|
TestServerWithListenerAndProperties(t, ln, addr, core, props)
|
|
defer ln.Close()
|
|
TestServerAuth(t, addr, token)
|
|
|
|
// Test without token
|
|
resp = testHttpGet(t, "", addr+"/v1/sys/in-flight-req")
|
|
testResponseStatus(t, resp, 200)
|
|
|
|
// Should also work with token
|
|
resp = testHttpGet(t, token, addr+"/v1/sys/in-flight-req")
|
|
testResponseStatus(t, resp, 200)
|
|
}
|