summaryrefslogtreecommitdiff
blob: daadd43423e82a633e0a621d829ed15e29a9676f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
From 47ff5a950e54ae2a570183be21312bcaa5271396 Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@gmx.de>
Date: Sun, 15 Oct 2023 19:04:44 +0200
Subject: [PATCH 05/10] Fix string concatenation in Qt6

---
 src/oauth1plugin.cpp | 33 ++++++++++++++++-----------------
 src/oauth1plugin.h   |  2 +-
 src/oauth2plugin.cpp |  4 ++--
 src/oauth2plugin.h   |  2 +-
 4 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/oauth1plugin.cpp b/src/oauth1plugin.cpp
index 6c38cbb..3a1bbd5 100644
--- a/src/oauth1plugin.cpp
+++ b/src/oauth1plugin.cpp
@@ -60,7 +60,6 @@ const QString TIMESTAMP = QString("timestamp");
 const QString AUTH_ERROR = QString("error");
 
 const QString EQUAL = QString("=");
-const QString AMPERSAND = QString("&");
 const QString EQUAL_WITH_QUOTES = QString("%1=\"%2\"");
 const QString DELIMITER = QString(", ");
 const QString SPACE = QString(" ");
@@ -321,7 +320,7 @@ void OAuth1Plugin::process(const SignOn::SessionData &inData,
     sendOAuth1PostRequest();
 }
 
-QString OAuth1Plugin::urlEncode(QString strData)
+QByteArray OAuth1Plugin::urlEncode(QString strData)
 {
     return QUrl::toPercentEncoding(strData).constData();
 }
@@ -399,7 +398,7 @@ QByteArray OAuth1Plugin::constructSignatureBaseString(const QString &aUrl,
     bool first = true;
     for (i = oAuthHeaderMap.begin(); i != oAuthHeaderMap.end(); ++i) {
         if(!first) {
-            oAuthHeaderString.append(AMPERSAND);
+            oAuthHeaderString.append(QLatin1Char('&'));
         } else {
             first = false;
         }
@@ -411,9 +410,9 @@ QByteArray OAuth1Plugin::constructSignatureBaseString(const QString &aUrl,
 
     QByteArray signatureBase;
     signatureBase.append("POST");
-    signatureBase.append(AMPERSAND);
+    signatureBase.append('&');
     signatureBase.append(urlEncode(urlWithHostAndPath));
-    signatureBase.append(AMPERSAND);
+    signatureBase.append('&');
     signatureBase.append(urlEncode(oAuthHeaderString));
     return signatureBase;
 }
@@ -427,16 +426,16 @@ QString OAuth1Plugin::createOAuth1Header(const QString &aUrl,
     QString authHeader = OAUTH + SPACE;
     if (!inData.Realm().isEmpty()) {
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_REALM)
-                          .arg(urlEncode(inData.Realm())));
+                          .arg(urlEncode(inData.Realm()).constData()));
         authHeader.append(DELIMITER);
     }
     if (!inData.Callback().isEmpty()) {
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_CALLBACK)
-                          .arg(urlEncode(inData.Callback())));
+                          .arg(urlEncode(inData.Callback()).constData()));
         authHeader.append(DELIMITER);
     }
     authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_CONSUMERKEY)
-                      .arg(urlEncode(inData.ConsumerKey())));
+                      .arg(urlEncode(inData.ConsumerKey()).constData()));
     authHeader.append(DELIMITER);
     // Nonce
 #if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
@@ -448,32 +447,32 @@ QString OAuth1Plugin::createOAuth1Header(const QString &aUrl,
 #endif
     QString oauthNonce = QString("%1%2").arg(nonce1).arg(nonce2);
     authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_NONCE)
-                      .arg(urlEncode(oauthNonce)));
+                      .arg(urlEncode(oauthNonce).constData()));
     authHeader.append(DELIMITER);
     // Timestamp
     QString oauthTimestamp =
         QString("%1").arg(QDateTime::currentDateTime().toSecsSinceEpoch());
     authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_TIMESTAMP)
-                      .arg(urlEncode(oauthTimestamp)));
+                      .arg(urlEncode(oauthTimestamp).constData()));
     authHeader.append(DELIMITER);
     if (!d->m_oauth1Token.isEmpty()) {
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_TOKEN)
-                          .arg(urlEncode(d->m_oauth1Token)));
+                          .arg(urlEncode(d->m_oauth1Token).constData()));
         authHeader.append(DELIMITER);
     }
 
     authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_SIGNATURE_METHOD)
-                      .arg(urlEncode(d->m_mechanism)));
+                      .arg(urlEncode(d->m_mechanism).constData()));
     authHeader.append(DELIMITER);
     // Creating the signature
     // PLAINTEXT signature method
     QByteArray secretKey;
-    secretKey.append(urlEncode(inData.ConsumerSecret()) + AMPERSAND +
+    secretKey.append(urlEncode(inData.ConsumerSecret()) + '&' +
                      urlEncode(d->m_oauth1TokenSecret));
     if (d->m_mechanism == PLAINTEXT) {
         TRACE() << "Signature = " << secretKey;
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_SIGNATURE)
-                          .arg(urlEncode(secretKey)));
+                          .arg(urlEncode(secretKey).constData()));
         authHeader.append(DELIMITER);
     }
     // HMAC-SHA1 signature method
@@ -484,7 +483,7 @@ QString OAuth1Plugin::createOAuth1Header(const QString &aUrl,
         QByteArray signature = hashHMACSHA1(secretKey, signatureBase);
         TRACE() << "Signature = " << signature;
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_SIGNATURE)
-                          .arg(urlEncode(signature.toBase64())));
+                          .arg(urlEncode(signature.toBase64()).constData()));
         authHeader.append(DELIMITER);
     }
     // TODO: RSA-SHA1 signature method should be implemented
@@ -494,11 +493,11 @@ QString OAuth1Plugin::createOAuth1Header(const QString &aUrl,
 
     if (!d->m_oauth1TokenVerifier.isEmpty()) {
         authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_VERIFIER)
-                          .arg(urlEncode(d->m_oauth1TokenVerifier)));
+                          .arg(urlEncode(d->m_oauth1TokenVerifier).constData()));
         authHeader.append(DELIMITER);
     }
     authHeader.append(EQUAL_WITH_QUOTES.arg(OAUTH_VERSION)
-                      .arg(urlEncode(OAUTH_VERSION_1)));
+                      .arg(urlEncode(OAUTH_VERSION_1).constData()));
 
     return authHeader;
 }
diff --git a/src/oauth1plugin.h b/src/oauth1plugin.h
index 3ff227a..aa37e26 100644
--- a/src/oauth1plugin.h
+++ b/src/oauth1plugin.h
@@ -65,7 +65,7 @@ private:
                                             const OAuth1PluginData &inData,
                                             const QString &timestamp,
                                             const QString &nonce);
-    QString urlEncode(QString strData);
+    QByteArray urlEncode(QString strData);
     QString createOAuth1Header(const QString &aUrl, OAuth1PluginData inData);
     QByteArray hashHMACSHA1(const QByteArray &keyForHash ,const QByteArray &secret);
     OAuth1PluginTokenData oauth1responseFromMap(const QVariantMap &map);
diff --git a/src/oauth2plugin.cpp b/src/oauth2plugin.cpp
index 8763f00..c7f7f84 100644
--- a/src/oauth2plugin.cpp
+++ b/src/oauth2plugin.cpp
@@ -393,9 +393,9 @@ void OAuth2Plugin::process(const SignOn::SessionData &inData,
     }
 }
 
-QString OAuth2Plugin::urlEncode(QString strData)
+QByteArray OAuth2Plugin::urlEncode(QString strData)
 {
-    return QUrl::toPercentEncoding(strData).constData();
+    return QUrl::toPercentEncoding(strData);
 }
 
 void OAuth2Plugin::userActionFinished(const SignOn::UiSessionData &data)
diff --git a/src/oauth2plugin.h b/src/oauth2plugin.h
index a16c316..389d3c3 100644
--- a/src/oauth2plugin.h
+++ b/src/oauth2plugin.h
@@ -84,7 +84,7 @@ private:
     QVariantMap parseJSONReply(const QByteArray &reply);
     QVariantMap parseTextReply(const QByteArray &reply);
     void handleOAuth2Error(const QByteArray &reply);
-    QString urlEncode(QString strData);
+    QByteArray urlEncode(QString strData);
     QUrl getAuthUrl();
     QUrl getTokenUrl();
 
-- 
2.43.0