lyra
9ad54f8e2a
feat: configurable Remote-User header (design consideration 1.2)
...
Sync GitHub / sync (push) Successful in 7s
Tests / test (pull_request) Successful in 58s
Add REMOTE_USER env var with four modes:
- session (default): sends session id, backward-compatible
- static: sends a fixed string (REMOTE_USER_STATIC)
- mapped: looks up session id in REMOTE_USER_MAP
- none: omits the header entirely
New RemoteUserMode enum, ConfigBag parsing/validation, and
StringTrait::authSuccessResponse resolves the header value based
on the configured mode. AcceptListener now receives ConfigBag as
a constructor dependency.
Addresses design consideration 1.2 (Remote-User header value is
user-controlled) from DESIGN_CONSIDERATIONS.md.
241 tests pass, 0 cs-fixer violations.
2026-08-11 22:48:52 -04:00
lyra
408d75dda1
chore: nice-to-have improvements for v1.0
...
Sync GitHub / sync (push) Successful in 8s
Code quality:
- Create AppConstants class with shared constants:
- FAR_FUTURE_DATE (replaces duplicated '2999-12-31' strings)
- MAX_INPUT_LENGTH (replaces duplicated 128 in Payload and StringTrait)
- Extract duplicated 'hi $id' response body into StringTrait::authSuccessResponse()
method, used by AcceptListener, AllowListener, and LoginManager
- Add missing @throws InvalidArgumentException annotations to
MonitorCacheKeys (getItem, hasItem, deleteItem, deleteItems, commit)
Configuration:
- Add proper env var type casting in services.yaml:
- COOKIE_TTL → env(int:)
- SUBDOMAIN_REDIRECT → env(bool:)
- IP_TTL → env(int:)
- TEAPOT → env(bool:)
Documentation:
- Create CONTRIBUTING.md with development setup, code style,
testing guidelines, and PR process
2026-08-11 16:37:23 -04:00
andrew
0813323ac2
renamed form fields to work better with password managers; fixed bug where an invalid login requests were not being counted as login attempts; preserve username when using central auth
2026-06-01 16:28:57 -04:00
andrew
9114cfd96f
update to php 8.5, backup codes, etc.
...
modified: Dockerfile
modified: composer.json
modified: composer.lock
modified: config/packages/twig.yaml
modified: config/services.yaml
modified: docs/Caddyfile
modified: docs/compose.yaml
renamed: docs/env.example -> docs/example.env
modified: public/index.php
modified: readme.md
modified: src/Command/GenerateBackupCodesCommand.php
modified: src/ConfigBag.php
modified: src/Data/Payload.php
modified: src/Enum/Scope.php
modified: src/Listener/AcceptListener.php
modified: src/Listener/AllowListener.php
modified: src/Listener/InterceptListener.php
modified: src/Listener/LoginListener.php
modified: src/MonitorCacheKeys.php
modified: src/PersistCache.php
modified: src/Service/BackupCodeManager.php
modified: src/Service/DomainManager.php
new file: src/Service/LoginManager.php
modified: src/Trait/CookieNameTrait.php
modified: src/Trait/GetTotpTrait.php
modified: src/Trait/MakeNonceTrait.php
modified: src/Trait/StringTrait.php
modified: src/Utilities.php
modified: templates/_script.html.twig
modified: templates/_style.html.twig
modified: templates/base.html.twig
modified: templates/login.html.twig
2026-05-29 21:56:42 -04:00
andrew
38124ef66c
First draft of backup codes. only created when the command is called. no command yet to expire/review codes.
...
Also added a few safeguards against excessively long user input.
Started on ability to redirect to auth subdomain (incomplete).
2026-05-21 12:15:35 -04:00
andrew
a0dc1a6049
rate-limiting update, now using a compound sliding-window. Continuing to move over to using traits more, and other code cleanup.
2026-03-11 08:27:27 -04:00
andrew
3d28485921
Removal of static-secret and totp-lookup.
...
Intending to build support for single-use backup codes.
Started refactoring to move trait dependencies internally, so that classes only have to specify their own direct dependencies.
2026-03-09 16:22:32 -04:00
andrew
27394ae555
v0.6.0 optional lookup for totp by static password
2026-02-10 13:31:09 -05:00
andrew
b61400085a
frontend support for password
2026-01-17 10:57:57 -05:00
andrew
1c4c289d81
massive rewrite to switch to using listeners instead of controller, header for login payload instead of get request, removed icon system, asset system, was able to remove all the domain processing, enhanced cookie security, and more.
2025-12-23 11:24:47 -05:00
andrew
b36aabb8a3
WIP: nearly done switching to using header instead of url parameters
2025-12-18 19:20:50 -05:00
andrew
102b9f3e78
Full code refactor to Symfony7.4 with FrankenPHP
...
Includes significant breaking changes.
Default port and transportation changed to
http via port 80
Names of environment variables have changed.
2025-12-15 12:30:14 -05:00