Skip to content

Commit 0f69c38

Browse files
authored
RCORE-2110 Remove references to stitch in access token parsing (#7769)
1 parent ab1361f commit 0f69c38

File tree

5 files changed

+2
-105
lines changed

5 files changed

+2
-105
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
* Fix some client resets (such as migrating to flexible sync) potentially failing with AutoClientResetFailed if a new client reset condition (such as rolling back a flexible sync migration) occurred before the first one completed. ([PR #7542](https://github.com/realm/realm-core/pull/7542), since v13.11.0)
1010

1111
### Breaking changes
12-
* None.
12+
* Any `stitch_` prefixed fields in the `BsonDocument` returned from `app::User::custom_data()` are being renamed on the server to have a `baas_` prefix instead ([PR #7769](https://github.com/realm/realm-core/pull/7769)).
1313

1414
### Compatibility
1515
* Fileformat: Generates files with format v24. Reads and automatically upgrade from fileformat v10. If you want to upgrade from an earlier file format version you will have to use RealmCore v13.x.y or earlier.
1616

1717
-----------
1818

1919
### Internals
20-
* None.
20+
* Removed references to `stitch_` fields in access tokens in sync unit tests ([PR #7769](https://github.com/realm/realm-core/pull/7769)).
2121

2222
----------------------------------------------
2323

src/realm/sync/noinst/server/access_token.cpp

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ struct AccessTokenParser {
5555
else if (escaped_key == "path") {
5656
state_stack.push(await_path);
5757
}
58-
else if (escaped_key == "stitch_data") {
59-
state_stack.push(await_stitchdata);
60-
}
6158
else if (escaped_key == "sync_label" || escaped_key == "syncLabel") {
6259
state_stack.push(await_sync_label);
6360
}
@@ -81,34 +78,6 @@ struct AccessTokenParser {
8178
}
8279
break;
8380
}
84-
case await_stitchdata: {
85-
if (event.type != JSONEvent::object_begin) {
86-
return JSONError::unexpected_token;
87-
}
88-
state_stack.pop();
89-
state_stack.push(await_stitchdata_object);
90-
break;
91-
}
92-
case await_stitchdata_object: {
93-
if (event.type == JSONEvent::object_end) {
94-
state_stack.pop();
95-
break; // End of object
96-
}
97-
StringData escaped_key = event.escaped_string_value();
98-
if (escaped_key == "realm_sync_label") {
99-
state_stack.push(await_sync_label);
100-
}
101-
else if (escaped_key == "realm_path") {
102-
state_stack.push(await_path);
103-
}
104-
else if (escaped_key == "realm_access") {
105-
state_stack.push(await_access);
106-
}
107-
else {
108-
state_stack.push(skip_value);
109-
}
110-
break;
111-
}
11281
case await_identity: {
11382
if (event.type != JSONEvent::string) {
11483
return JSONError::unexpected_token;
@@ -202,8 +171,6 @@ struct AccessTokenParser {
202171
private:
203172
enum parser_state {
204173
toplevel,
205-
await_stitchdata,
206-
await_stitchdata_object,
207174
await_identity,
208175
await_admin,
209176
await_timestamp,

test/stitch_private.pem

Lines changed: 0 additions & 27 deletions
This file was deleted.

test/stitch_public.pem

Lines changed: 0 additions & 9 deletions
This file was deleted.

test/test_sync_auth.cpp

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,6 @@ TEST(Sync_Auth_JWTAccessToken)
4747
CHECK_EQUAL(tok.sync_label, "default");
4848
}
4949

50-
51-
TEST(Sync_Auth_JWTAccessTokenStitchFields)
52-
{
53-
AccessToken tok;
54-
AccessToken::ParseError error = AccessToken::ParseError::none;
55-
56-
PKey pk1 = PKey::load_public(test_util::get_test_resource_path() + "stitch_public.pem");
57-
AccessControl ctrl(std::move(pk1));
58-
59-
AccessToken::Verifier& verifier = ctrl.verifier();
60-
auto exampleJWT =
61-
"eyJhbGciOiJSUzI1NiIsImtpZCI6IjVkYTY0NzI2NTM5NWM0ZmY0NzE2ZmE4NyIsInR5cCI6IkpXVCJ9."
62-
"eyJhdWQiOiJyZWFsbSIsImV4cCI6NDU3MTE3ODYzOSwiaWF0Ijo0NTcxMTc4Mjc5LCJpc3MiOiJyZWFsbSIsInN0aXRjaF9kYXRhIjp7InJl"
63-
"YWxtX2FjY2VzcyI6WyJkb3dubG9hZCIsInVwbG9hZCIsIm1hbmFnZSJdLCJyZWFsbV9wYXRoIjoiLzVkYTY0NzI3NTM5NWM0ZmY0NzE2ZmE5"
64-
"My9leGFtcGxlIiwicmVhbG1fc3luY19sYWJlbCI6ImRlZmF1bHQifSwic3RpdGNoX2RldklkIjoiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw"
65-
"Iiwic3RpdGNoX2RvbWFpbklkIjoiNWRhNjQ3MjY1Mzk1YzRmZjQ3MTZmYTg2Iiwic3ViIjoiNWRhNjQ3Mjc1Mzk1YzRmZjQ3MTZmYTkzIiwi"
66-
"dHlwIjoiYWNjZXNzIiwidXNlcl9kYXRhIjpudWxsfQ."
67-
"dgoKeww6xSjvhmZ69muDOJGOkk1sFxq9sfdFF2ufq3z1oTFujp3g6AIaKy66qcx6zbHEx4Zv7Fy4ytGpIW30truAiTvEks2z_"
68-
"s6WHHUO2PEOygUruhnIHms2-Bw3MlTVn1cQHdIYK7F4AqT35Ds-9OVKWYPBMZnZt2AvIaBeESTNF-gOXKT0teAeM7PHkVzTow9I_"
69-
"G6aCTRZhBRLrGdlaScXoVTNUhZf-"
70-
"oxI7fmCcQYdZ4grulQgs40LxOnpGOxjnc9xiwoIsVsjsvju3qzqUt0Gg0tNjCAQtgdxn4XKXmx2THPnClxyeF67mn5IQ0QQy33EqLsETxgUD"
71-
"cZ17h62JQ";
72-
auto result = AccessToken::parseJWT(StringData(exampleJWT), tok, error, &verifier);
73-
74-
CHECK(result);
75-
CHECK(error == AccessToken::ParseError::none);
76-
CHECK_EQUAL(tok.expires, 4571178639);
77-
CHECK_EQUAL(tok.sync_label, "default");
78-
CHECK_EQUAL(tok.path, "/5da647275395c4ff4716fa93/example");
79-
std::uint_least32_t admin_access =
80-
Privilege::Download | Privilege::Upload | Privilege::ModifySchema | Privilege::SetPermissions;
81-
CHECK_EQUAL(tok.access, admin_access);
82-
}
83-
8450
#endif // !REALM_MOBILE
8551

8652
} // unnamed namespace

0 commit comments

Comments
 (0)