airsonic-pulse/docs
litebito f5aa50cc8e
Add legacy-auth deprecation warning (fixes #145) (#241)
* Add legacy-auth deprecation warning

Closes the #145 apiKeyAuthentication bundle. PR-A shipped the storage, PR-B
the auth wiring, PR-C the self-service UI; this last piece adds the operator
nudge for legacy authentication and the user-facing release-notes Highlights
for both apiKey availability and the legacy deprecation.

A new LEGACY_AUTH_WARNING_CACHE (existing JCache/EhCache infrastructure,
mirroring #228's ArtistByNameCache; bounded at 10000 entries, 24h TTL) backs
a single throttled WARN log emitted from
RESTRequestParameterProcessingFilter.successfulAuthentication on the first
legacy authentication per (user, client) within the window. The hook
distinguishes legacy auth by request parameters (u + (p OR (t AND s))) --
NOT by the authenticated token class -- because successfulAuthentication
fires for any non-null Authentication result, including pre-authed apiKey
and Basic requests. Request-param discrimination is the robust signal and
naturally bypasses apiKey-only requests.

The WARN line names the method (legacy username/password or legacy
token+salt), points operators at the new Personal Settings -> API Keys page,
and references #56 with soft timing. Inputs are sanitized
(Character.isISOControl -> U+FFFD) before both log substitution and
cache-key concatenation, which defeats CRLF log injection via the username
and collision attacks via U+001F on the throttle separator; a
MAX_FIELD_LENGTH = 256 early-reject prevents pathological-length keys from
inflating the cache. The log line contains no password, token, salt, IP,
or User-Agent.

The existing RESTRequestParameterProcessingFilter.attemptAuthentication
logic is byte-unchanged; only a setter, the maybeWarnLegacyAuth helper, and
the static identifyLegacyAuthMethod were added.

fixes #145

* CI: Update pm_ci workflow from self hosted to github hosted

---------

Co-authored-by: litebito <litebito@users.noreply.github.com>
2026-05-30 14:52:40 +02:00
..
configuration docs: update documentation 2026-04-29 18:42:47 +02:00
docker chore: rename in-repo references for Airsonic-Pulse org transfer (#163) 2026-05-14 16:43:38 +02:00
figures docs: kagemomiji/airsonic-advanced#742 add lyrics documentation and related images for enhanced user guidance 2025-08-23 00:59:41 +09:00
first_start kagemomiji/airsonic-advanced#254 add artist image and cover art image document 2024-06-13 13:55:48 +00:00
installation chore: rename in-repo references for Airsonic-Pulse org transfer (#163) 2026-05-14 16:43:38 +02:00
media kagemomiji/airsonic-advanced#512 doc: Add Artist Web UI descriptionI 2024-07-06 13:32:44 +00:00
other_devices docs:updating documentation 2026-04-29 18:14:42 +02:00
proxy Update apache.md textual changes 2024-06-11 23:31:28 +02:00
release-notes Add legacy-auth deprecation warning (fixes #145) (#241) 2026-05-30 14:52:40 +02:00
security ci: sign container images with Cosign on release (keyless OIDC) (#195) 2026-05-18 18:51:45 +02:00
webui docs: kagemomiji/airsonic-advanced#742 add lyrics documentation and related images for enhanced user guidance 2025-08-23 00:59:41 +09:00
API.md docs: adding API implementation and status overview 2026-05-24 23:40:56 +02:00
HISTORY.md Update compatibility notes in HISTORY.md 2026-04-29 17:35:22 +02:00
README.md Add Docker documentation and update README Docker section 2026-04-29 23:11:21 +02:00
troubleshooting.md kagemomiji/airsonic-advanced#603 doc: Fix troubleshooting guide and add instructions for HTTPS issue 2024-09-18 05:23:26 +00:00