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

mendersoftware / mender-server / 1920843497

11 Jul 2025 11:00AM UTC coverage: 65.508% (+0.03%) from 65.48%
1920843497

push

gitlab-ci

web-flow
Merge pull request #782 from alfrunes/MEN-7743

MEN-7743: Distributed authentication rate limits (common parts)

186 of 312 new or added lines in 6 files covered. (59.62%)

3 existing lines in 2 files now uncovered.

32347 of 49379 relevant lines covered (65.51%)

1.38 hits per line

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

80.77
/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 {
1✔
31
        if request == nil {
2✔
32
                return nil
1✔
33
        }
1✔
34
        newRequest := new(http.Request)
1✔
35
        *newRequest = *request
1✔
36
        uri := request.Header.Get(HeaderForwardedURI)
1✔
37
        if uri != "" {
2✔
38
                var err error
1✔
39
                newRequest.URL, err = url.ParseRequestURI(uri)
1✔
40
                if err != nil {
1✔
NEW
41
                        panic(err)
×
42
                }
43
                newRequest.RequestURI = uri
1✔
NEW
44
        } else {
×
NEW
45
                newRequest.URL = new(url.URL)
×
NEW
46
                *newRequest.URL = *request.URL
×
NEW
47
        }
×
48
        host := request.Header.Get(HeaderForwardedHost)
1✔
49
        if host != "" {
2✔
50
                newRequest.URL.Host = host
1✔
51
        }
1✔
52
        method := request.Header.Get(HeaderForwardedMethod)
1✔
53
        if method != "" {
2✔
54
                newRequest.Method = method
1✔
55
        }
1✔
56
        return newRequest
1✔
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