• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / mender-server / 1978029483

11 Aug 2025 02:15PM UTC coverage: 65.755% (+0.3%) from 65.495%
1978029483

Pull #860

gitlab-ci

kjaskiewiczz
docs(useradm): move API specification to single file

Changelog: Title
Ticket: QA-1094
Signed-off-by: Krzysztof Jaskiewicz <krzysztof.jaskiewicz@northern.tech>
Pull Request #860: docs(useradm): move API specification to single file

29261 of 44500 relevant lines covered (65.76%)

1.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/backend/pkg/rest.utils/request.go
1
// Copyright 2025 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14

15
package rest
16

17
import (
18
        "net/http"
19
        "net/url"
20
)
21

22
const (
23
        HeaderForwardedURI    = "X-Forwarded-Uri"
24
        HeaderForwardedHost   = "X-Forwarded-Host"
25
        HeaderForwardedMethod = "X-Forwarded-Method"
26
)
27

28
// RewriteForwardedRequest makes a shallow clone of request and replaces
29
// the URL and Method with X-Forwarded-* headers.
30
func RewriteForwardedRequest(request *http.Request) *http.Request {
×
31
        if request == nil {
×
32
                return nil
×
33
        }
×
34
        newRequest := new(http.Request)
×
35
        *newRequest = *request
×
36
        uri := request.Header.Get(HeaderForwardedURI)
×
37
        if uri != "" {
×
38
                var err error
×
39
                newRequest.URL, err = url.ParseRequestURI(uri)
×
40
                if err != nil {
×
41
                        panic(err)
×
42
                }
43
                newRequest.RequestURI = uri
×
44
        } else {
×
45
                newRequest.URL = new(url.URL)
×
46
                *newRequest.URL = *request.URL
×
47
        }
×
48
        host := request.Header.Get(HeaderForwardedHost)
×
49
        if host != "" {
×
50
                newRequest.URL.Host = host
×
51
        }
×
52
        method := request.Header.Get(HeaderForwardedMethod)
×
53
        if method != "" {
×
54
                newRequest.Method = method
×
55
        }
×
56
        return newRequest
×
57
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc