- prevent authUser to contain "\x00" with RADIUS authentication
- drop
paragonie/constant_time_encoding
dependency - switch to new version of php-cs-fixer
- add Makefile
- switch from PHPUnit to
fkooman/put
- drop
psr/log
and implement our ownLoggerInterface
,SysLogger
andNullLogger
- source formatting
- add
InputValidation::preferTcp
- add InputValidation::tcpOnly
- add ProfileConfig::excludeRoutes
- fix to accommodate for path change from
/qr
to/qr/totp
(PR#21)
- update RADIUS plugin to support (non-vendor specific) permissions through RADIUS attributes
- remove
tlsProtection
configuration option,tls-crypt
will always be used - add
HttpClientInterface::postRaw
to allow sending JSON - remove obsolete
/_saml/*
whitelist
- refactor
ProfileConfig
- allow calls to
/qr
when enrolling for 2FA when 2FA is enforced
- rework
Config
class to offer strict typing - remove
CliParser
as it was barely used by the other projects - unify the HTTP client so all components use the same one
- swap 404/405 (issue #19)
- remove
Tpl
class - update for new
fkooman/secookie
version (4.0.0)
- do not escape slashes (
/
) in JSON any longer - switch to our own
SessionInterface
andCookieInterface
so we can drop fkooman/secookie dependency here - refactor and simplify
Request
class - refactor and simplify
FormAuthentication
by merging "Hook" and "Module" in one class
- implement
Request::getScheme()
and fixRequest::getAuthority()
- support PiB when showing byte counts
- strip whitespace in front and behind user name as e.g. LDAP treats user name with / without whitespace identical
- implement static permissions for PDO|LDAP|RADIUS authentication backends
- implement string trimming function for templates
- update
Tpl
class fromfkooman/tpl
- support multiple translation files / overrides
- RADIUS/LDAP are now optional extensions in
composer.json
- add dnsSuffix configuration option
- use timezone as configured in PHP as the default for showing dates and times
- LDAP: disable following referrals by default
- add
InputValidation::uiLang
- better validate
GET
andPOST
values to make sure they are of typestring
- remove deprecated
filter_var
parameters for URL validation
- better error reporting when (internal) API calls fail
- remove YubiKey support
- check whether file exists before reading it
- implement the ability to require 2FA
- switch to
Tpl
, completely remove Twig - remove
tls-auth
andenableCompression
from profile config, no longer supported - rename "entitlement" to "permission"
- remove PHP error suppression
- fix issue where user could not logout when being asked for 2FA
- rework "logout" to make it work for
MellonAuthentication
as well
- implement
UserInfo::authTime
to obtain the time the user authenticated - implement
InputValidation::expiresAt
to replaceInputValidation::certExpireDays
- update password instead of trying to add user when user already exists with
PdoAuth
(Sjors Haanen)
- add InputValidation::certExpireDays
- remove blockSmb from default
ProfileConfig
- add
blockLan
to block traffic to the local LAN
- introduce
Json
helper class - remove XML from
eduPersonTargetedId
if used as SAML attribute for user identification - delete
_last_authenticated_at_ping_sent
session variable at logout - implement "entitlementList" validator
- introduce "entitlement" checker hook to check whether an authenticated user is allowed to use the admin portal
- simplify attribute fetch of authenticated user for LDAP
- remove userIdAuthorization from SAML plugin
- introduce
Request::optionalHeader
,Request::requireHeader
for API simplication - no longer have the concept of "admin" entitlement
- remove
Request::getHeader
- rewrite authorization layer, introduce "entitlements"
- switch SAML backend to use entitlements
- implement entitlements in LDAP backend
- internal API calls now better typed
- lots of
vimeo/psalm
fixes
- replace
tlsCrypt
option withtlsProtection
- forgot to expose
_two_factor_user_id
for error pages
- expose
_two_factor_user_id
to two factor verification template
- replace
useNat
withenableNat4
andenableNat6
to allow separate configuration for whether or not to enable NAT. For example: use NAT for IPv4 and public IP addresses for IPv6
- remove
authPlugin
configuration option, it will be autodetected now
- support specifying multiple RADIUS servers
- add RADIUS authentication plugin
- delete cached user groups on logout
- switch to
UserInfo
from just userId string
- introduce minimum password length input validation
- introduce
exposedVpnProtoPorts
- implement
PdoAuth
method to check if user exists - implement
InputValidation::voucherCode
- implement method to update password in
PdoAuth
- add
PdoAuth
class for storing users and password hashes in a database
- support 160 bits TOTP secrets
Service
class did not catchInputValidationException
properly- make
InputValidationException
extendHttpException
now
- make sure we use LDAPv3
- better LDAP error messages
- implement
CredentialValidatorInterface
for verifying username/password - switch
FormAuthentication
to useCredentialValidatorInterface
- implement
SimpleAuth
that verifies static username/password list used so far withFormAuthentication
- implement
LdapAuth
- add
LdapClient
implementation
- make compression (
--comp-lzo
) configurable
- fix missing PATH_INFO and add test for it (issue #5)
- add
Response::import
to allow easy construction ofResponse
object, working around sub-optimal API - cleanup
Response
a little bit without breaking API - support PHPUnit 6
- fix PHP >= 7.2 compatibility with
count()
- fix risky tests
- make
InputValidation::userId
validate the string is actually valid UTF-8 and check the length of the userId - remove
InputValidation::languageCode
as it is not used anywhere - add
authPlugin
configuration option to use external plugin to validate 2FA
- make
InputValidation::userId
a NOP, all UTF-8 characters should be allowed asuserId
- no longer require
libsodium
as this library has no crypto needs
- rename UI language cookie to no longer need to explicitly bind it to Path and Domain without breaking language selector
- update
fkooman/secookie
- small bugfix in
Config::hasSection()
- initial release