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

mendersoftware / mender / 1047260214

24 Oct 2023 08:50AM UTC coverage: 80.226% (-0.1%) from 80.34%
1047260214

push

gitlab-ci

oleorhagen
test(artifact): Add signature verification of the test artifact for RSA

Signed-off-by: Ole Petter <ole.orhagen@northern.tech>

6873 of 8567 relevant lines covered (80.23%)

9388.93 hits per line

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

89.66
/mender-auth/ipc/server.cpp
1
// Copyright 2023 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
#include <mender-auth/ipc/server.hpp>
16

17
#include <functional>
18
#include <iostream>
19
#include <string>
20

21
#include <api/auth.hpp>
22
#include <common/error.hpp>
23
#include <common/expected.hpp>
24
#include <common/dbus.hpp>
25
#include <common/log.hpp>
26

27
namespace mender {
28
namespace auth {
29
namespace ipc {
30

31
namespace auth_client = mender::api::auth;
32
namespace error = mender::common::error;
33
namespace expected = mender::common::expected;
34
namespace dbus = mender::common::dbus;
35

36
using namespace std;
37

38
// Register DBus object handling auth methods and signals
39
error::Error Caching::Listen(const string &private_key_path, const string &identity_script_path) {
2✔
40
        // Cannot serve new tokens when not knowing where to fetch them from.
41
        AssertOrReturnError(servers_.size() > 0);
2✔
42

43
        auto dbus_obj = make_shared<dbus::DBusObject>("/io/mender/AuthenticationManager");
2✔
44
        dbus_obj->AddMethodHandler<dbus::ExpectedStringPair>(
2✔
45
                "io.mender.AuthenticationManager", "io.mender.Authentication1", "GetJwtToken", [this]() {
1✔
46
                        return dbus::StringPair {GetJWTToken(), GetServerURL()};
2✔
47
                });
4✔
48
        dbus_obj->AddMethodHandler<expected::ExpectedBool>(
2✔
49
                "io.mender.AuthenticationManager",
50
                "io.mender.Authentication1",
51
                "FetchJwtToken",
52
                [this, private_key_path, identity_script_path]() {
3✔
53
                        if (auth_in_progress_) {
1✔
54
                                // Already authenticating, nothing to do here.
55
                                return true;
56
                        }
57
                        auto err = auth_client::FetchJWTToken(
58
                                client_,
1✔
59
                                servers_,
60
                                private_key_path,
1✔
61
                                identity_script_path == "" ? default_identity_script_path_ : identity_script_path,
1✔
62
                                [this](auth_client::APIResponse resp) {
2✔
63
                                        auth_in_progress_ = false;
1✔
64
                                        CacheAPIResponse(resp.value());
2✔
65
                                        if (resp) {
1✔
66
                                                dbus_server_.EmitSignal<dbus::StringPair>(
1✔
67
                                                        "/io/mender/AuthenticationManager",
68
                                                        "io.mender.Authentication1",
69
                                                        "JwtTokenStateChange",
70
                                                        dbus::StringPair {resp.value().token, resp.value().server_url});
2✔
71
                                        } else {
72
                                                log::Error("Failed to fetch new token: " + resp.error().String());
×
73
                                        }
74
                                },
1✔
75
                                tenant_token_);
1✔
76
                        if (err != error::NoError) {
1✔
77
                                log::Error("Failed to trigger token fetching: " + err.String());
×
78
                                return false;
×
79
                        }
80
                        auth_in_progress_ = true;
1✔
81
                        return true;
1✔
82
                });
4✔
83

84
        return dbus_server_.AdvertiseObject(dbus_obj);
4✔
85
}
86

87
} // namespace ipc
88
} // namespace auth
89
} // namespace mender
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