1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 04:47:50 +08:00
Commit Graph

68106 Commits

Author SHA1 Message Date
Bartłomiej Dach
3006bae0d8
Send client-generated session GUID for identification purposes
This is the first half of a change that *may* fix
https://github.com/ppy/osu/issues/26338 (it definitely fixes *one case*
where the issue happens, but I'm not sure if it will cover all of them).

As described in the issue thread, using the `jti` claim from the JWT
used for authorisation seemed like a decent idea. However, upon closer
inspection the scheme falls over badly in a specific scenario where:

1. A client instance connects to spectator server using JWT A.

2. At some point, JWT A expires, and is silently rotated by the game in
   exchange for JWT B.

   The spectator server knows nothing of this, and continues to only
   track JWT A, including the old `jti` claim in said JWT.

3. At some later point, the client's connection to one of the spectator
   server hubs drops out. A reconnection is automatically attempted,
   *but* it is attempted using JWT B.

   The spectator server was not aware of JWT B until now, and said JWT
   has a different `jti` claim than the old one, so to the spectator
   server, it looks like a completely different client connecting, which
   boots the user out of their account.

This PR adds a per-session GUID which is sent in a HTTP header on every
connection attempt to spectator server. This GUID will be used instead
of the `jti` claim in JWTs as a persistent identifier of a single user's
single lazer session, which bypasses the failure scenario described
above.

I don't think any stronger primitive than this is required. As far as I
can tell this is as strong a protection as the JWT was (which is to say,
not *very* strong), and doing this removes a lot of weird complexity
that would be otherwise incurred by attempting to have client ferry all
of its newly issued JWTs to the server so that it can be aware of them.
2024-07-17 15:56:41 +02:00
Dean Herbert
5633297d1c
Merge pull request #28884 from smoogipoo/bds-test
Fix BackgroundDataStoreProcessor test failure
2024-07-17 11:24:30 +09:00
Bartłomiej Dach
7ba1f142e5
Fix rank upgrade path upgrading scores that failed background reprocessing earlier 2024-07-16 14:04:51 +02:00
Bartłomiej Dach
53b6f9e385
Fix test not waiting properly for background processing to complete 2024-07-16 14:04:51 +02:00
Bartłomiej Dach
6db135279f
Restore test coverage of original fail case 2024-07-16 14:04:50 +02:00
Dan Balasescu
ae5b0aa54b
Fix BackgroundDataStoreProcessor test failure 2024-07-16 19:59:13 +09:00
Bartłomiej Dach
ad2db3f853
Merge pull request #28882 from peppy/update-framework
Update framework
2024-07-16 12:28:51 +02:00
Bartłomiej Dach
0f106abf53
Merge pull request #28883 from peppy/fix-timing-point-misalign
Fix summary timeline timing points being incorrectly positioned
2024-07-16 12:28:17 +02:00
Dean Herbert
f1325386f0
Fix summary timeline timing points having x position applied twice 2024-07-16 18:32:54 +09:00
Dean Herbert
4ad7d900c1
Fix incorrect editor screen padding 2024-07-16 18:20:33 +09:00
Dean Herbert
063377f47c
Update framework 2024-07-16 17:45:25 +09:00
Dan Balasescu
54cf64d5ce
Merge pull request #28853 from peppy/fix-import-metadata-test-failure
Fix test failure in `TestMetadataTransferred`
2024-07-16 11:17:42 +09:00
Dan Balasescu
58ffbd9e1e
Merge pull request #28874 from peppy/fix-editor-toolbox-padding
Fix editor toolboxes being incorrectly chopped
2024-07-16 10:37:33 +09:00
Dan Balasescu
f6b4d54fef
Merge pull request #28876 from peppy/fix-daily-challenge-disposal-aa
Fix potential crash when exiting daily challenge screen
2024-07-16 10:34:43 +09:00
Dean Herbert
1083e71ce6
Fix potential crash when exiting daily challenge screen
Without the schedule this will potentially run after disposal of the
local drawable hierarchy.

Closes https://github.com/ppy/osu/issues/28875.
2024-07-16 03:02:04 +09:00
Dean Herbert
6cdcd6136d
Fix editor toolboxes being incorrectly chopped 2024-07-15 21:02:54 +09:00
Dean Herbert
2c102fc9d0
Fix test failure in TestMetadataTransferred 2024-07-14 01:36:51 +09:00
Dean Herbert
c854dfd6fb
Merge pull request #28832 from nekodex/ui-sfx-tweaks
UI SFX Tweaks/Updates
2024-07-13 23:24:06 +09:00
Dean Herbert
9ed97d03a8
Update resources 2024-07-13 20:22:52 +09:00
Dean Herbert
eb3f480a2a
Merge pull request #28683 from frenzibyte/footer-v2-integration
Replace local footer in existing sheared overlays (e.g. mod select & first-run setup) with `ScreenFooter`
2024-07-12 22:45:06 +09:00
Dean Herbert
9a1939a922
Move logoContainer local again 2024-07-12 22:01:20 +09:00
Dean Herbert
e8f7213b3b
Move logo depth to a forward passing 2024-07-12 22:01:20 +09:00
Jamie Taylor
320df7da2b
Use separate samples for scrolling to top and scrolling to previous 2024-07-12 21:01:19 +09:00
Jamie Taylor
ad2b354d9c
Update sample looping behaviour to better suit new sample 2024-07-12 21:01:19 +09:00
Bartłomiej Dach
152e2d0d60
Merge pull request #28831 from peppy/tooltips
Add tooltips to summary timeline display
2024-07-12 12:54:03 +02:00
Bartłomiej Dach
217b01d303
Apply tooltip to bookmark pieces too
Bookmarks don't show on real beatmaps, but they do show in test scenes
(namely `TestSceneEditorSummaryTimeline`).

Also does some more changes to adjust the markers to the latest updates
to other markers.
2024-07-12 11:12:20 +02:00
Dean Herbert
2453e2fd00
Fix nullability issue 2024-07-12 18:11:23 +09:00
Bartłomiej Dach
5e00995948
Merge branch 'master' into tooltips 2024-07-12 11:01:03 +02:00
Bartłomiej Dach
518dc17518
Merge pull request #28788 from bdach/timeline-redesign
Redesign editor timelines to address most frequent user complaints
2024-07-12 10:58:59 +02:00
Bartłomiej Dach
452fbed681
Merge pull request #28808 from frenzibyte/fix-all-notifications
Fix confirm exit dialog potentially showing incorrect number of ongoing operations
2024-07-12 10:56:29 +02:00
Dean Herbert
4be5d056c5
Reduce opacity of centre marker slightly 2024-07-12 17:23:48 +09:00
Dean Herbert
d2cb07b157
Add a bit more padding between node overlays and hitobjects in timeline 2024-07-12 17:22:36 +09:00
Dean Herbert
2454722601
Add tooltips to summary timeline display 2024-07-12 16:39:41 +09:00
Dean Herbert
275e7aa451
Adjust timeline centre marker visuals and bring in front of ticks 2024-07-12 16:37:03 +09:00
Dean Herbert
43addc8400
Fix test regression 2024-07-12 16:29:41 +09:00
Dean Herbert
ca2fc72959
Adjust timeline centre marker visuals and bring in front of ticks 2024-07-12 16:29:40 +09:00
Dean Herbert
f65ab6736d
Adjust breaks in timeline to be centered with waveform / hitobjects 2024-07-12 15:45:58 +09:00
Dean Herbert
2ad2ae0c16
Add slight offset for timeline BPM display to avoid overlaps 2024-07-12 14:34:01 +09:00
Dean Herbert
9a7a0cdb34
Adjust timeline ticks to add a bit more body back 2024-07-12 14:29:18 +09:00
Dean Herbert
685b19a571
Adjust various visuals of summary timeline in a hope for user acceptance
.. with a somewhat appealing design.
2024-07-12 13:57:42 +09:00
Dean Herbert
e6b7d2530e
Change red shade for timing control points 2024-07-12 13:39:40 +09:00
Dean Herbert
fb4f620c90
Add back BPM and adjust sizing of bottom bar a bit more 2024-07-12 12:34:43 +09:00
Dean Herbert
911fa31ac0
Merge pull request #28823 from frenzibyte/remove-volume-key-arrow-handling
Remove key arrow handling in `VolumeOverlay` to avoid conflicting with ruleset key bindings (i.e. osu!catch)
2024-07-12 01:21:21 +09:00
Salman Ahmed
3ea0f58daa Update TestSceneFreeModSelectOverlay to work again 2024-07-11 15:31:23 +03:00
Salman Ahmed
d4a4a059d4 Fix footer content not accessible by overlay when overriden by a subclass 2024-07-11 15:31:02 +03:00
Salman Ahmed
7a5624fd0e Add screen footer to ScreenTestScene 2024-07-11 15:30:07 +03:00
Salman Ahmed
669e945fc3 Fix ModSelectOverlay not hiding without a footer 2024-07-11 14:56:17 +03:00
Salman Ahmed
bd44c17079 Enable NRT in VolumeOverlay 2024-07-11 14:29:56 +03:00
Salman Ahmed
3190f8bb7e Remove key arrow handling in VolumeOverlay 2024-07-11 14:29:33 +03:00
Salman Ahmed
7b541d378c Revert some changes
I can see `IsDisplayingToast` being removed and `IsPresent` becoming `=> Notifications.Any()` but I'll just leave this for another day.
2024-07-11 14:23:11 +03:00