mirror of
https://github.com/kemko/nomad.git
synced 2026-01-09 11:55:42 +03:00
agent: Adding X-Nomad-Token header parsing
This commit is contained in:
@@ -358,9 +358,18 @@ func (s *HTTPServer) parseRegion(req *http.Request, r *string) {
|
||||
}
|
||||
}
|
||||
|
||||
// parseToken is used to parse the X-Nomad-Token param
|
||||
func (s *HTTPServer) parseToken(req *http.Request, token *string) {
|
||||
if other := req.Header.Get("X-Nomad-Token"); other != "" {
|
||||
*token = other
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// parse is a convenience method for endpoints that need to parse multiple flags
|
||||
func (s *HTTPServer) parse(resp http.ResponseWriter, req *http.Request, r *string, b *structs.QueryOptions) bool {
|
||||
s.parseRegion(req, r)
|
||||
s.parseToken(req, &b.SecretID)
|
||||
parseConsistency(req, b)
|
||||
parsePrefix(req, b)
|
||||
return parseWait(resp, req, b)
|
||||
|
||||
@@ -338,6 +338,24 @@ func TestParseRegion(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseToken(t *testing.T) {
|
||||
t.Parallel()
|
||||
s := makeHTTPServer(t, nil)
|
||||
defer s.Shutdown()
|
||||
|
||||
req, err := http.NewRequest("GET", "/v1/jobs", nil)
|
||||
req.Header.Add("X-Nomad-Token", "foobar")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
var token string
|
||||
s.Server.parseToken(req, &token)
|
||||
if token != "foobar" {
|
||||
t.Fatalf("bad %s", token)
|
||||
}
|
||||
}
|
||||
|
||||
// TestHTTP_VerifyHTTPSClient asserts that a client certificate signed by the
|
||||
// appropriate CA is required when VerifyHTTPSClient=true.
|
||||
func TestHTTP_VerifyHTTPSClient(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user