* Rewrote annotated extension method extraction
* Enclose annotation based methods into a single ExtensionDataBuilder
All of the reflection related to extension annotation was difficult,
so now it's all dealt with in one place and it's abstracted away with the
upcoming builder based API.
Some odd additions had to be made to the interface, but they are mostly harmless,
as the annotations are used as method parameters where necessary. This way the
users of the API are unable to give weird values.
It was possible to reuse MethodWrapper and Parameters classes for calling the methods.
* Refactored server value storage to use builder data
* Refactored player value storage to use builder data
* Refactored table gathering to use builders
* Handle extension errors properly
* Javadocs for DataExtension builder API
* Removed DataProviders based implementation
- Renamed ProviderValueGatherer to DataValueGatherer
Also:
- Transactions now execute as much as possible on the same connection instead
of getting a new connection
- More shutdown messages when waiting for things (Like SQLite queries, or db transactions).
Affects issues:
- Possibly fixed#1814
One bypass was discovered for detecting who has played on a server, where
403 is given for level 2 when user has played and 400 when they have not.
This was fixed.
One 500 error was discovered when the network has no proxy server, /v1/network/servers
ran into NullPointerException in a query.
Marks player EnderCrystal kills for a player and
also counts mobs killed with EnderCrystal explosions as mob kills for a player.
Affects issues:
- Close#1571
Fixed security vulnerability with cookies not being invalidated properly
Request headers were not properly set for the Request object,
leading to the Cookie header missing when logging out, which then left
the cookie in memory. Rogue actor who gained access to the cookie could then
use the cookie to access the panel.
Made cookie expiry configurable with 'Webserver.Security.Cookie_expires_after'
Due to cookie persistence there is no way to log everyone out of the panel.
This will be addressed in a future commit with addition of a command.
Affects issues:
- Close#1740