* core WIP
* try to finish up
* trim space too
and a couple of cleanups
* update test data
* put escapes back
* another net-snmp difference
* correct copy paste error
* WIP
* Use new code YAY
* a tiny bit more
* Kind of working
* Handle manual modules correctly
* convert core to modern module
* Only save metrics if modules is not overridden
* correct module exists check
* database error handling
* debug handling
* restore bad changes
* Introduce Actions
RunAlertRulesAction
UpdateDeviceGroupsAction
* tweaks to output
* Fix some issues in outside code
* Style fixes
* fixes to module status checks
* typehints!
* Use logger only and DI
* OS module not named correctly
* Work on quiet output a bit more
* generically don't change output when disabling debug if the driver is already stack
* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction
* restore legacy os module shim
* use the new poller code for tests
* PollingDevice event
* Fix some issues and enable/disable error reporting around legacy modules
* typehints
* fully update baseline
* Use Process for version commands so we don't leak debug output.
* don't detect rrdtool version in ci every time
* style fixes
* Warning fixes
* more fixes
* re-update baseline
* remove diff noise
* fix up alerts
* Catch exceptions in device ip lookup
* Revert accidental snmp.inc.php poller target change
(should have been ?: not ??)
* core WIP
* try to finish up
* trim space too
and a couple of cleanups
* update test data
* put escapes back
* another net-snmp difference
* correct copy paste error
* WIP
* Use new code YAY
* a tiny bit more
* Kind of working
* Handle manual modules correctly
* convert core to modern module
* Only save metrics if modules is not overridden
* correct module exists check
* database error handling
* debug handling
* restore bad changes
* Introduce Actions
RunAlertRulesAction
UpdateDeviceGroupsAction
* tweaks to output
* Fix some issues in outside code
* Style fixes
* fixes to module status checks
* typehints!
* Use logger only and DI
* OS module not named correctly
* Work on quiet output a bit more
* generically don't change output when disabling debug if the driver is already stack
* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction
* restore legacy os module shim
* use the new poller code for tests
* PollingDevice event
* Fix some issues and enable/disable error reporting around legacy modules
* typehints
* fully update baseline
* Use Process for version commands so we don't leak debug output.
* don't detect rrdtool version in ci every time
* style fixes
* Warning fixes
* more fixes
* re-update baseline
* remove diff noise
* fix up alerts
* Fix warnings up to Arbos
* fixes a-c
* a-r
* a-vrp
* There and back again
* Update test data, couple fixes
* PHPSStan fixes
* style fixes, and fix Asyncos, whoops
* flip serial back.......
* less bogus data
* Poweralert sysName during polling too
* make sure things are calculated in the correct order
* fix style and bad nullables
* update test data
* A comple more conversions
* cambium ptp, misc, and hardware_mib
* remaining except vmware-esxi
* Fixes
* Update baseline
* fixes and fix up baseline
* adjust SnmpQueryMock to upstream options change
* data corrections
* restore slashes
* correctly handle all options input in SnmpQueryMock
* undo ftos changes
* restore vccodec sysDescr
* Kick other session when changing password
Invalidate other sessions when a user password gets changed
* Don't logout admin users when they change passwords.
Cleanup phpstan exceptions
* only restore user if needed
* comment odd behavior
* $current_user typehint
* Rewrite netstats polling
As modern module
Don't use snmpgetnext as it can result in extra data returned
* remove copyrights on interfaces
* typehints
* fix silly backslashes
* Update manifest and add service worker
cleanup icons a bit
* Push notifications WIP
* navigate working
* cleanup
* acknowledge wired up
* Set VAPID keys on composer install
* Component to control notification permissions.
* Allow all user option to validate
* Enable on browser load if transport exists.
* Check for transport before showing user permissions
translations
* Documentation
* style fixes
* access via the attribute model
* fix alerting test
* update schema
* cleanup subscription on disable
* non-configurable db and table for webpush subscriptions (respect system connection)
* revert AlertTransport change
hopefully phpstan can figure it out
* phpstan fixes
* Support custom details display
* Match transport names to brand's preferred display
* less duplicate id errors
* Tests are done in Laravel code now so
remove legacy function usage... could be better, but ok
* Style fixes
* Style fixes 2
* Fix alert test
* Doc updates requires HTTPS and GMP
* unregister subscription when permission is set to denied
* cleanup after user deletion
* delete the right thing
* fix whitespace
* update install docs to include php-gmp
* suggest ext-gmp
* update javascript
* Update functions.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Rewrite ISIS Adjacency discovery/polling
hopefully much faster now, do most work in discovery and just check up/down in poller.
* unused variable
* Implement option for OS override
* fix an incorrect typehint
* test data
* work around stupid migration name
* update schema
* better handling for the on-demand discovery
* more detailed phpdoc
* fix when adjacency is not found
* don't clear out data when adjacency goes away
* Adjust nullable fields
* fixes
* fix class name
* correct migration
* fix bug causing adjacency data to always be blank
* port popups for port links
* isisISAdjState does not need to be nullable
* remove extra space
* default off
* If port is missing return $text
* update schema
* Cleanup old components
* correc copy paste error
* Definition of a new SLA module to migrate from old cisco-sla and support other devices : Juniper RPM and Huawei
* Change wrong description name of module SLA
* Re implementing Juniper RPM support in a new module Slas (Cisco SLA to be added)
* Added Graphs for Juniper RPM types
* Tried to make discover and poller generic : to handle Cisco SLA and Juniper RPM and others
* Reimplementing Cisco SLA in the new Sla module and adding condition to manage both SLA and RPM
* Definition of a new SLA module to migrate from old cisco-sla and support other devices : Juniper RPM and Huawei
* Change wrong description name of module SLA
* Re implementing Juniper RPM support in a new module Slas (Cisco SLA to be added)
* Added Graphs for Juniper RPM types
* Tried to make discover and poller generic : to handle Cisco SLA and Juniper RPM and others
* Reimplementing Cisco SLA in the new Sla module and adding condition to manage both SLA and RPM
* Fix some error due to Elequent object replacing SQL request
* Fixing indentation
* Fixed continuous integrations errors
* Fixed continuous integrations errors part 2
* Fixed continuous integrations errors part 3 : missing last new lines
* Fixed PHP Static Analysis checks
* Fixed continuous integrations errors part 4
* Fixed PHP Static Analysis checks part 2
* Trying to convert existing cisco-sla to new slas one
* Trying to add slas to fix test failure (I am pretty sure this is not enough but I don't know how to do it)
* Switching old cisco-sla module declaration to new slas module in concerned OS files
* Fixing wrong sla module name instead of slas in concerned OS files
* Fixing wrong module name sla changed to slas (as is it in power-supplies reimplementation)
* Fixing some warnings shown in the Inspection CI but skipping some that are already present
* Adding tests files from virtual Juniper VMX and adding slas modules in /tests/module_tables
* Adding missing SNMP data files
* Module Slas modifications to use inheritance
* Fix CI errors
* Fix CI errors part 2
* Fix CI errors part 3
* Fixing no value on RTT graphs
* Fixing only last SLA to be polled : problem with loops
* Fix CI errors part 4
* Optimizing a little the Juniper RPM poller part
I wanted to query only the required values but it is complicated to query a specific OID
as Cisco-SLA does because the owner and tag are hardcoded in ASCII decimal with strange values.
So I use the function snmp_walk which gets the whole OID values in text.
And I index the Juniper MIB (because we want multiple values). But I changed the DISMAN MIB
requests to get only what we want.
* Fix CI errors
* Fix CI errors part 2
* Fix CI errors part 3
* Fixing PHP Static Analysis error 2/4
* Fix CI errors
* Implementing Interfaces to fix some errors that occurs with inheritance
* Adding missing Interfaces files
* Moving generic Sla discovery code into Junos Class
* Fix CI errors
* Fix CI errors part 2
* Fixing missing definition of SlaDiscovery in Cisco shared Class
* Fixing missing import for Illuminate\Database\Eloquent\Collection
* Fix CI errors part 3
* Fix PHP Static Analysis error
* change type strings to use translations instead of config
* IOSXR test data
* remove test data garbage
* simplify discovery
* Fix style
* Updating test files to adapt mock sla_nr ID starting from 0 and not 1 : CI tests should pass
* clean up polling
add rtt field in the db
cisco icmpjitter seems to have confused a lot of values
* rtt on discovery
* use crc32 for consistent sla_nr values
* revert snmprec
* Fix style
* correct schema
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Cisco enhanced cellular support
* Extra sensors, camelcasing and bugfixes
* Doc update
* German translation
* French translation
* Style fixes
* Style changes
* Style changes
* Style changes
* Style changes
* Style changes
* Added test data
* New test data --variant
* New test data --variant ir1101
* Made the new wireless sensors generic
* Added test data for ios variant ir809
* Fix includes/discovery/sensors/count/cisco.inc.php, thanks PipoCanaja
* Moved cellular operating band from Wireless sensors to count sensor
* test data
* test data
* test data
* test data
* Moved ICCID/IMSI/IMEI to inventory
* test data and style fix
* Cellular state sensors now have a group
Co-authored-by: Maikel de Boer <mdb@tampnet.com>
* mempools to modern module
quick hacky hrstorage port
* port ucd-snmp-mib to Mempools
* Populate DB for ucd
Prep for yaml
* initial yaml attempt
* more complex conversions
fixes to YamlDiscovery, make leading $ optional and allow mib::oid format
* walk full tables and skip values
normalize percentages above 100
* handle precent only ones (specify total as 100)
* Move default polling out of YamlMempoolsDiscovery
* fixes
* Update test data hrstorage should be correct.
* perc_warn for hrstorage
* Host Resources, record buffer, cached, and shared
* Host Resources is always better, don't do both HR and UCD
* fix unix, include warning levels
* variable size
* consolidate skip_values
* define mempools schema
* number instead of integer
* more schema refactor
* one more skip_values reference
* throw error for invalid oid translation
aos6
* a* and Cisco
* updated test data
* update almost all hrstorage data files
* b*
* c* with test data
use standard cache for hrStorage
* use cache for storage module too
* hand bsnmp properly
* bdcom
* exclude total oid from yaml so it is not polled
May add a way to ignore this behavior and poll it, but I don't know if that is needed.
* automatically handle percent only values
* ciscowlc
* only poll used or free if we have used, free, and total.
* fix skipping
* the dlinkoning
fix find value when value "name" is numeric
* support numeric oids
* dnos/ftos attempt
* I guess we can't filter on total > 0
* edgecos
* e*
* f WIP
* f*
* gwd (aka g*)
* h* + procurve
* i*
* j*
* m*
* support 0% used memory (however unlikely)
* n*
* CISCO-PROCESS-MIB memory, share cache with processors module
* ignore mempools with invalid total
* p*
* quanta
* r*
fix raisecom mibs terribly broken
* s-z
* style fixes
* Move VRP back to PHP and make it actually work
* fix zynos
* update schema
* Update Cisco processor data for description bug fixes
* fix comware processors
* comware mempools with memory size
default precision to 1
* sophos-xg updated data
* hrstorage use ram size for buffers, cache, and shared
* Show memory available instead of free in device overview
* UCD, use same rrd format, store available instead of free in the db.
* Calculate availability for HOST-RESOURCES-MIB
* Convert UCD to standard polling
* rename old rrd files
* initial graph work
* graph WIP
* Graph looking decent
* Graph looking decent for hr
* remove old ucd_graph code
* handle availability mempool
more graph cleanup
* color adjustments
* remove accidental free calculation
* Update test data and fix corner cases
* fis pfsense
* update schema
* add default value for mempool_class
* fix whitespace
* update schema
* update schema correctly
* one more time
* fortigate_1500d-sensors missing oids
* Update docs.
* fix indent
* add implements MempoolsDiscovery explicitly to OS
* remove ucd_memory graph references
remove unused device_memory graph
* remove unused functions
* set devices with mempools to rediscover to prevent/minimize gaps
* use a subquery
* add overview graph
* port health mempools table
* Update device mempool
* only show overview if multiple
* Don't override user set warn percentages in discovery
* fix missed usage
* fix style
* Safety check to not rename rrd files incorrectly if migration has not been run.
* Fix overview percent bar and represent available and used on the bar
* missed an item to convert to mempool_class
* percent on the wrong side
* Implement locks in the file cache
* Replace custom locks
* implement restore lock
Used when re-hydrating
* remove legacy use statements
* Add class descriptions
* Fix style
* Default to database cache driver
* missed cache_locks table
prevent chicken-egg issue
* style fixes
* Remove custom file lock implementation
* missed items from file cache
* Update schema definition
hmm, other schema noise must be from manual modification as this is generated from a freshly migrated db.
* require predis, it is pure python, so no harm in adding
* and set predis as the default client
* Implement OS specific information discovery
That way it doesn't have to be fetched during polling
Also improve discovery process, os is only detected once, in the core module.
EXA is the test os, a couple improvements there.
* Use local variable, then unset it so we don't pollute.
* fix style issues
* test and other fixes
* attribute update fixes
* Update exa data, need new source data
* null missing "os" values
* fix ftos odd character
* fix ftos odd character
* only null for new style or we will reset to null every discovery
* Move device observer to own class
* Handle location, relocate event logging
* update exa e7-2 data
* update ird test data, apparently unicode is now working.
* update Linux ntc, now uses correct icon
* Only load all os on the web, also, we can't load existing the the database isn't connected.
* only for devices that have a location
* revert ftos test data apparently
* revert ird
* Throw some shit together, rough outline.
* Reorganize tabs, use tab controllers
* Implement performance (into the latency tab)
* Update resources/views/device/header.blade.php
Co-Authored-By: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Add more tabs
* All controllers created
* Implement routes
* Implement smokeping
* routing and auth
* fix smokeping check
* Implement device dropdown menu
* Update deviceUrl to new style
* Use Gates
* Fix style
* use more appropriate gates
* add show-config gate
remove Laravel helper
* Only show vlan tab if VLANs exist for the device :D
* Fix rancid file check will return false
* revert over-zealous file name changes
* don't need to request the location parameter, just cast to string to avoid bugs when not found
* Move latency tab (ping/performance) to the position of performance instead of ping.
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Datastores to object oriented code, using the Laravel IoC container
Change instantiation
better DI
move OpenTSDB
Small re-orgs
remove unused stuff
Fix graphs and other scripts
Use DI for all except rrd
fix up connection error handling
Add tests, fix up a "few" things
Add Config::forget()
Style fixes
Don't reference legacy code
remove accidental code paste
Add datastores phpunit groups
some tests
* rebase fixes
* some test fixes
* shorter tests
* shorter tests
* Don't except when rrdtool can't be started.
* restore tests
* fix rrd tests
* fix iterable change upstream
* fix isValidDataset
* fix invalid data bug
* fix mysql incorrect ds
* fix issue with data that is too long
* use regular data_update()
* Use log facade
* OpenTSDB mis-ordered arguments fix
* Making a singleton with different options makes different singletons. Just use the global config settings to disable datastores.
* only filter tags for datastores that won't it don't modify the tags permanently
* Update copyrights to include original authors.
* Stats for all datastores
* Fix mysql sends different rrd / other ds names
* fix snmp last stats not initialized
remove unused function
* remove unused function and move single use function closer to its use
* InfluxDB does not need to update null or U values.
Skip write if all fields are empty
* Fix smart value checks
* fix style issues
* Make sure port data is stored the same way as before for Graphite and OpenTSDB
Add ifIndex tag to all to be compatible
* Missed rrdtool_tune() call
* Test update WIP
* OpenTSDB now includes tags
* fix style
* Datastores to object oriented code, using the Laravel IoC container
Change instantiation
better DI
move OpenTSDB
Small re-orgs
remove unused stuff
Fix graphs and other scripts
Use DI for all except rrd
fix up connection error handling
Add tests, fix up a "few" things
Add Config::forget()
Style fixes
Don't reference legacy code
remove accidental code paste
Add datastores phpunit groups
some tests
* rebase fixes
* some test fixes
* shorter tests
* shorter tests
* Don't except when rrdtool can't be started.
* restore tests
* fix rrd tests
* fix iterable change upstream
* fix isValidDataset
* fix invalid data bug
* fix mysql incorrect ds
* fix issue with data that is too long
* use regular data_update()
* Use log facade
* OpenTSDB mis-ordered arguments fix
* Making a singleton with different options makes different singletons. Just use the global config settings to disable datastores.
* only filter tags for datastores that won't it don't modify the tags permanently
* Update copyrights to include original authors.
* Stats for all datastores
* Fix mysql sends different rrd / other ds names
* fix snmp last stats not initialized
remove unused function
* remove unused function and move single use function closer to its use
* InfluxDB does not need to update null or U values.
Skip write if all fields are empty
* Fix smart value checks
* fix style issues
* update nokia mibs
* database migrations
* add code
* html code
* update db schema
* add test data
* add FIXME
* move mibs/nokia/MPLS-TE-MIB to mibs/MPLS-TE-MIB
* initial database migrations
* first part, discovery
* second part, polling
* add SAP polling and discovery
* style checks
* rename variables in more generic way
* html global pages for sdp and sdp binds
* add Services and SAPs
* port links, database, etc.
* html device routing pages
* add tests
* checks
* rework database id relationship
* scruntinizer inspection
* fix unit test for new mpls tables
* WIP - Add MPLS Support
This introduce the generic MPLS support
- New database tables for MPLS LSPs
- actually discovery and polling on NOKIA SR OS (Timetra) devices
- new routing->MPLS HTML pages
- ToDo MPLS LSP paths table and views
Suggestions and improvements are welcome
* add db schema
* some fixes
* add path table, discovery and polling
* add path views
* add test data
* Convert MPLS module to new style
Implement a SyncsModels trait to simplify code a lot
* abs() for negative value from snmp (bug?), test data
* fix db schema
* Fix up test data, remove uneeded data in json
* fix whitespace
* Removed legacy transports and templates code
* Add notification
* abstract LnmsCommand
* Only issue alerts "legacy" alerts to mail for default contacts, etc.
* Prevent no contacts error when default contact is not specified, or there are no contacts for other reasons.
* remove eval \o/
* Update notifications.rss
* Update to Added support for HeliOS 10Ghz failover to 5Ghz state sensor
Converted /includes/discovery/sensors/state/helios.inc.php to yaml
Test units included
CLA has been signed
* Added support for CeraOS TX Mute Status state sensor, NTP Client Lock Status state sensor.
Updated CeraOS temperature sensor, now called from includes/definitions/discovery/ceraos.yaml - removed includes/discovery/sensors/temperature/ceraos.inc.php
Corrected issue with CeraOS temperature reverting to zero after polling (added a trailing . to the num_oid)
Amended includes/definitions/discovery/helios.yaml with changes as advised by Neil Lathwood and Tony Murray
* Added unit test data and corrected ceraos.yaml validation error
* Added support for Ceraos Wireless Sensors (php)
Cross Polar Interference
Wireless Frequency
Added Ceraos state sensors (yaml)
NTP Client Lock Status
Tx Mute Status
Radio Operational Status
Remote Radio Operational Status
IDU Temperature
Power Amplifier Temperature
* Fix up tests, etc
* remove helios changes, fix style
- Fix location so it is a regular database relation (this allows multiple devices to be accurately linked to one location and saves api calls)
- Parse coordinates from the location more consistently
- Add settings to webui
- ~~Used [PHP Geocoder](http://geocoder-php.org/), which has lots of backends and is well tested. (also includes reverse and geoip)~~
- Google Maps, Bing, Mapquest, and OpenStreetMap supported initially.
- Default to OpenStreetMap, which doesn't require a key. They will liberally hand out bans if you exceed 1 query per second though.
- All other Geocoding APIs require an API key. (Google requires a credit card on file, but seems to be the most accurate)
- Update all (I think) sql queries to handle the new structure
- Remove final vestiges of override_sysLocation as a device attribute
- Update existing device groups and rules in DB
- Tested all APIs with good/bad location, no/bad/good key, and no connection.
- Cannot fix advanced queries that use location
This blocks #8868
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
* Use Laravel for authentication
Support legacy auth methods
Always create DB entry for users (segregate by auth method)
Port api auth to Laravel
restrict poller errors to devices the user has access to
Run checks on every page load. But set a 5 minute (configurable) timer.
Only run some checks if the user is an admin
Move toastr down a few pixels so it isn't as annoying.
Fix menu not loaded on laravel pages when twofactor is enabled for the system, but disabled for the user.
Add two missing menu entries in the laravel menu
Rewrite 2FA code
Simplify some and verify code before applying
Get http-auth working
Handle legacy $_SESSION differently. Allows Auth::once(), etc to work.
* Fix tests and mysqli extension check
* remove duplicate Toastr messages
* Fix new items
* Rename 266.sql to 267.sql
* Fixed snmptraps.
* Fixed space
* Added bgp down/up and authentication failure
* Fixed typo
* Fixed some typos, arrays, astext and format_hostname
* Updated documentation
* Moved code to a function
* Some refactor
* Minor fixes
* Minor fixes 2
* More minor fixes
* Changes requested by Tony
* Minor fixes
* Moved include to snmptrap.php
* Refactor traps to use object oriented code.
Should trigger events too/instead, but we'll leave that.
Testing todo
* Add tests and fix things so they actually work
Not checking events yet.
* Fixed typo and severity level
* Update composer deps, I think the lock file wasn't right.
add json and mbstring extension deps while I'm at it.
* Fix several issues with phpunit fixtures
* Show composer status in web validate.
Don't duplicate in validate.php
* Create variable to check if a group has been completed.
No longer skips database checks.
Extract a base class.
Fix locate_binary and find_executable issues (mostly exposed by lack of db)
* Update Validator.php
* Share code between all mysql based authorizers
I plan to update the mysql password encryption and this will allow the code to be changed in a single location.
It also reduces a lot of duplication.
* Fix tests, I suspect reauthenticate will work for these...
Do not allow password updates for several authorizers
* Extract DiscoveryItem and move some things to better places.
Extract model class
Fix up model construction. I have problem with construction...
Makeshift model working. Switch constructor to factory. discover() and create()
Support legacy discovery.
Remove uneeded custom pollers
Remove netonix custom detection as we try ucd on all os now.
Add a few yaml procs. Fix a couple things.
More processor discovery conversions
Move Calix e7 to standard hrProcessorLoad, but it doesn't fully implement the HR-MIB, move things around to make it work.
Add a few yaml procs. Fix a couple things. Correct some stupid mib stuff.
Move more, drop php 5.3
Add netscaler which uses string indexes. Port fiberhome to yaml and use skip_values
More conversions. BroadcomProcessorUsage Trait
Serveriron and Ironware share some mibs. Create a common abstract os for them.
Add yaml support for mib specification in each data entry
Make legacy discover_processor() set 0 for hrDeviceIndex
Untangle Dell switch OS processors
Use use shared OS for groups if they don't have a specific group.
fix silly mib mistake
Make index optional
Move HR and UCD to Traits and out of Processor.
* forgot to update the fortiswitch index
* Make sgos and avaya-ers match the old index.
* fix comware test data
* fix merge errors
* fix dsm and remove pointless empty modules
* file not found exception is in the wrong place.
* Updated processor development docs
* Refactor alert transports to classes
* Fix linting
* Make Slack alert transport php 5.3 compatible
* Rename call method to deliverAlert for alert transport
* Inital cambium refactor
* Refactored tests
* Remove CMM from pmp group
* Add sensors / Give CMM individual OS
* Fix linting
* More Sensors / states and Revised Headers
* Added old graphs / more sensors
* Add modulation rate to sensor
* Fix Hardware detection bug
* Further hardware detection refinments
* Modify pmp hardware detection
* New Wireless Metric - SSR
* SSR Sensor Graph
* Migrate SSR to metric
* Added last metric file
* Add master check to isAp method
* Fix variables in epmp
* CMM Discovery and state addition
* Add another test for cmm
* Allow the URL a user is sent to after logging out to be customised
This is required for any authentication system that has a magic URL for logging out (e.g. /Shibboleth.sso/Logout).
* Allow auth plugins to return a username
This is a bit cleaner than the current auth flow, which special cases e.g. http authentication
* Add some tests, defaults and documentation
* Add single sign-on authentication mechanism
* Make HTTPAuth use the authExternal/getExternalUsername methods
* Add to acknowledgements
* Add reset method to Auth
* Refactored authorizers to classes
* Merge changes for #7335
* ! fix php 5.3 incompatibility
* Update ADAuthorizationAuthorizer.php
* Fix get_user -> getUser
* Rename AuthorizerFactory to Auth, fix interface missing functions
* Add phpdocs to all interface methods and normalize the names a bit.
* Re-work auth_test.php AD bind tests to work properly with the new class.
Reflection is not the nicest tool, but I think it is appropriate here.
Handle exceptions more nicely in auth_test.php
* Restore AD getUseList fix
Not sure how it got removed
* fix auth_test.php style