Commit Graph

270 Commits

Author SHA1 Message Date
Thomas Gelf 316d926811 Ldap/Query: re-add __toString
We stopped using __toString as it is unable to handle exceptions - and
this makes sense. However, that's IMO not a good reason to completely
drop __toString. Especially when debugging, benchmarking and similar you
often need a quick way to "dump" an object.

In that case you are often not in a mood to figure out whether that
specific class prefers create(), dump(), render() or whatever. We should
not base our view scripts on __toString - at least unless we do not catch
Exceptions in __toString methods, eventually "forwarding" them as triggered
error where needed.
2015-03-13 08:58:25 +01:00
Eric Lippmann d8d0d88c95 Rename Capability::hasStartTLS to Capability::hasStartTls() 2015-03-13 00:29:00 +01:00
Eric Lippmann db08ccad4b Fix encryption setting written to a LDAP reource's INI configuration
Use starttls for STARTTLS and ldaps for LDAPS.
2015-03-12 23:56:25 +01:00
Eric Lippmann 86f3ce9133 Rename Ldap\Connetion::SSL to ::LDAPS
The SSL constant was used to denote LDAP over TLS/SSL. In fact both STARTTLS and LDAPS use encrypted TLS/SSL communication
w/ STARTTLS upgrading a plain text connection and LDAPS using a separate port. Thus speaking of SSL only for LDAPS and TLS only for STARTTLS
is not correct.
2015-03-12 23:56:08 +01:00
Eric Lippmann 1b9ddaacac Add PHPDoc to Ldap\Connection's encryption consts 2015-03-12 23:35:38 +01:00
Eric Lippmann 17393a7b41 Remove unnecessary PHPDoc tags from Ldap\Connection 2015-03-12 23:30:04 +01:00
Johannes Meyer 8295d6d9b0 Do not require the `connection' directive when creating a LDAP resource 2015-03-12 15:36:52 +01:00
Johannes Meyer 5de5a65df0 Do not suppress errors when a LDAP capability query fails 2015-03-12 15:18:00 +01:00
Johannes Meyer 1b440a4f1b Make SSL/TLS configurable for LDAP resources
refs #7771
2015-03-12 15:17:19 +01:00
Johannes Meyer 0758be4af1 Add support for dynamic ldap filter expressions
"Dynamic" is a more of a overstatement when describing this commit but
the current implementation is just the start. Once our ldap protocol stuff
supports our filter implementation this will be vastly improved.

refs #8365
2015-03-11 09:50:41 +01:00
Johannes Meyer 2cf09ebc48 Revert "LdapResourceForm: Validate the host field and do not require a port"
This reverts commit a34d6026b3.

refs #7990
2015-03-11 08:00:20 +01:00
Johannes Meyer a34d6026b3 LdapResourceForm: Validate the host field and do not require a port
fixes #7990
2015-03-10 15:03:48 +01:00
Matthias Jentsch 36d2d31035 Do not use page control unless explicitly announced
refs #8490
2015-02-27 17:10:55 +01:00
Matthias Jentsch 65821863fa Don't crash on single ldap capability entries
refs #8490
2015-02-27 17:10:21 +01:00
Matthias Jentsch e93a5f16d9 Move capability-related code of the ldap connection into a separate class
Achieve a better separation between the different concerns, more readable code and get rid of unused dead code.
2015-02-27 17:10:21 +01:00
Matthias Jentsch bc950a855d Surpress warnings when ldap page control is not available 2015-02-25 18:39:03 +01:00
Matthias Jentsch d4dc0177c0 Sort LDAP user list
fixes #7693
2015-02-24 12:50:57 +01:00
Matthias Jentsch b70cda77d4 Fail gracefully if the page control is not available
Execute the runPagedQuery without pagination instead of throwing an exception.

fixes #8490
2015-02-24 12:22:29 +01:00
Johannes Meyer b828f8b13a Fix ldap authentication when authenticating against ActiveDirectory
Unlike OpenLDAP, ActiveDirectory does not seem to react on the size limit
passed to ldap_search() in global manner causing it to not to respond with
LDAP_SIZELIMIT_EXCEEDED (4) in case a requested page contains more
entries than the requested maximum.

fixes #7993
2015-02-06 16:37:35 +01:00
Johannes Meyer 3852feb069 Add defaults for limit and offset in Icinga\Protocol\Ldap\Query 2015-02-06 16:32:59 +01:00
Johannes Meyer c49f723f05 Let Icinga\Protocol\Ldap\Exception inherit from IcingaException 2015-02-06 16:31:03 +01:00
Eric Lippmann 6bae2e0a53 Note that our license is GPL v2 or any later version in our license header instead of pointing to the license's URL 2015-02-04 10:52:27 +01:00
Johannes Meyer 12497749fc Do not log when using a limited query for a paged search operation 2015-02-04 10:51:49 +01:00
Marcus Cobden 5f624e42fd Fix minor mistakes in Ldap/Connection
Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-02-04 09:44:17 +01:00
Eric Lippmann 5b4fab0750 Add license header
This time without syntax errors hopefully :)
2015-02-03 16:27:59 +01:00
Eric Lippmann 5fa2e3cfdc Revert "Add license header"
This reverts commit 338d067aba.
2015-02-03 16:16:26 +01:00
Eric Lippmann 338d067aba Add license header
fixes #7788
2015-02-03 15:51:04 +01:00
Johannes Meyer 7989b48248 Fix ldap auth when the userNameAttribute holds multiple values
fixes #8246
2015-02-03 10:15:54 +01:00
Johannes Meyer 3e128732b8 Apply a limit to results fetched via Ldap\Connection::fetchRow()
fixes #7993
2015-01-29 17:29:11 +01:00
Johannes Meyer 6e533f223e Log warnings emitted by ldap_control_paged_result_response() as debug
Such a warning is emitted as well in case it's not critical. That is passing
an alternative overall result limit using ldap_search() to the server causes
it being applied across pages so ldap_control_paged_result_response()
does not indicate the "end" of the resultset just by adjusting the cookie
but by emitting the warning as well.
2015-01-29 17:12:59 +01:00
Johannes Meyer 9ff0bbcfc0 Fix that Icinga\Protocol\Ldap\Connection does not correctly apply limits 2015-01-29 17:07:58 +01:00
Johannes Meyer 97cc37b99c Move php version check from ...\Ldap\Query to ...\Ldap\Connection
refs #8261
refs #6176
2015-01-29 15:59:03 +01:00
Johannes Meyer 2a115e71d4 Add support for paged LDAP search results
fixes #8261
refs #6176
2015-01-29 15:53:15 +01:00
Johannes Meyer c288a68ed5 Merge branch 'master' into bugfix/drop-zend-config-7147
Conflicts:
	application/forms/LdapDiscoveryForm.php
2014-11-18 13:21:18 +01:00
Johannes Meyer 7621f6642d Adjust usages of Icinga\Application\Config
refs #7147
2014-11-18 13:11:52 +01:00
Matthias Jentsch 5f8fcf4005 Fix Ldap server discovery
Add a new connection member that stores whether settings were guessed or product of a discovery, move discovery methods into seperate class.

fixes #7691
2014-11-18 09:45:54 +01:00
Thomas Gelf b6464c5d83 Livestatus\Connection: one more comment 2014-11-16 18:43:11 +01:00
Thomas Gelf aaec1b84bf Livestatus\Query: indentation 2014-11-16 18:42:10 +01:00
Thomas Gelf 0ff9d57504 Livestatus\Connection: just a comment 2014-11-16 18:37:01 +01:00
Thomas Gelf 195375f055 Livestatus\Query: use calculated column headers 2014-11-16 18:03:58 +01:00
Thomas Gelf d368df8211 Livestatus\Connection: check resource on disconnect 2014-11-16 18:01:07 +01:00
Thomas Gelf 2c7373f385 Livestatus\Connection: benchmark, comments 2014-11-16 17:59:56 +01:00
Thomas Gelf 140b246974 Livestatus\Connection: remove obsolete constant
TCPNODELAY is available in PHP >= 5.3
2014-11-16 17:58:56 +01:00
Thomas Gelf 6bf0ca216a Livestatus\Query: resultrow method - base for more
This is where query-based column fixup voodoo starts
2014-11-16 16:35:02 +01:00
Thomas Gelf 628597d6cb Livestatus\Query: some more filter-related stuff 2014-11-16 16:32:53 +01:00
Thomas Gelf 46b047b013 Livestatus\Query: add customvar support 2014-11-16 16:31:09 +01:00
Thomas Gelf 7d02107803 Livestatus\Query: fix limit, add some notes 2014-11-16 16:29:40 +01:00
Thomas Gelf d7141392a5 Livestatus\Query: return available columns 2014-11-16 16:28:52 +01:00
Thomas Gelf 7b6b9b8574 LivestatusConnection: separator constant 2014-11-16 16:27:21 +01:00
Thomas Gelf e0143bf572 Livestatus\Connection: add missing use statements 2014-11-16 16:26:28 +01:00
Thomas Gelf fd55ffe47e Livestatus\Connection: switch to new fetch methods 2014-11-16 16:25:47 +01:00
Thomas Gelf efd395e12a Livestatus\ResponseRow: initial dummy implementation 2014-11-16 16:22:10 +01:00
Thomas Gelf 17c8453c1c Livestatus\Connection: line splitting implementation
Will need some more work to get SplFixedArray handling safe
2014-11-16 16:02:50 +01:00
Thomas Gelf e1cdd30c93 Livestatus\Connection: fetch row from socket...
...basically just calling readLine, but splitting columns
2014-11-16 16:00:03 +01:00
Thomas Gelf e755b37af3 Livestatus\Connection: discover column headers...
...in case the query doesn't know about
2014-11-16 15:56:58 +01:00
Thomas Gelf 8ec8c153dd Livestatus\Connection: implement readLineFromSocket
We want to stream data in the near future, so reading line by line is
essential
2014-11-16 15:55:53 +01:00
Thomas Gelf a027efc9e7 Livestatus\Connection: make use of socketError 2014-11-16 15:55:20 +01:00
Thomas Gelf d66c95a725 Livestatus\Connection: implement socketError method 2014-11-16 15:54:32 +01:00
Thomas Gelf be8120bd39 Livestatus\Connection: document hardcoded count 2014-11-16 15:53:19 +01:00
Thomas Gelf d6b9f56a2c Livestatus\Connection: throw "better" exceptions
Removed outdated method
2014-11-16 15:51:26 +01:00
Thomas Gelf 578873f695 Livestatus\Query: start using new filter methods 2014-11-16 15:48:59 +01:00
Thomas Gelf 3b1b38a353 Livestatus\Query: attempt to separate column handling 2014-11-16 15:47:06 +01:00
Thomas Gelf 4b5b5f4ae3 Livestatus\Query: use trigger_error in __toString 2014-11-16 15:37:52 +01:00
Thomas Gelf 510e1e66d6 Livestatus\Connection: add fetchRow / fetchPairs
Temporary ugly and slow implementation
2014-11-16 15:33:17 +01:00
Thomas Gelf 4cbe8da26f Livestatus\Query: add a lot of filter voodoo 2014-11-16 15:30:10 +01:00
Thomas Gelf 14cdcc8ce2 Livestatus\Query: fetch csv, not json 2014-11-16 15:28:17 +01:00
Thomas Gelf 23546a4224 Livestatus\Query: parse an array structure 2014-11-16 15:22:54 +01:00
Thomas Gelf 1b8449009c Livestatus\Connection: temporarily hardcode count 2014-11-16 15:20:12 +01:00
Thomas Gelf 0916f57ce8 Livestatus\Query: split string cast implementation
This way we can use an exception-throwing variant internally while not
breaking __toString
2014-11-16 15:13:07 +01:00
Thomas Gelf 38fec33849 Livestatus\Query: temporarily disable count cache 2014-11-16 15:12:13 +01:00
Thomas Gelf 48dfb1bb70 Livestatus\Query: remove obsolete properties 2014-11-16 15:11:31 +01:00
Thomas Gelf 39a995cc6f Livestatus\Query: remove SimpleQuery tasks 2014-11-16 15:09:33 +01:00
Thomas Gelf 6de98dcf97 Livestatus\Query: extend SimpleQuery, not abstract 2014-11-16 15:06:58 +01:00
Johannes Meyer 9d292269b1 Merge branch 'master' into feature/setup-wizard-7163
Conflicts:
	application/forms/Config/Resource/LdapResourceForm.php
	test/php/application/forms/Config/Authentication/LdapBackendFormTest.php
2014-11-11 09:44:11 +01:00
Johannes Meyer 124f64ad89 Merge branch 'master' into bugfix/drop-zend-config-7147 2014-11-07 14:07:15 +01:00
Johannes Meyer 7b99b74ae1 Prefer Icinga\Application\Config instead of Zend_Config
refs #7147
2014-11-07 13:53:03 +01:00
Matthias Jentsch 54eda31633 Allow connect to hosts with no anonymous access
Do not throw exceptions on failed ldap connects during capability discovery

fixes #7325
2014-11-06 17:04:56 +01:00
Johannes Meyer 170ded6510 Merge branch 'master' into feature/setup-wizard-7163
Conflicts:
	library/Icinga/Authentication/Backend/LdapUserBackend.php
	library/Icinga/File/Ini/IniWriter.php
2014-11-04 14:22:53 +01:00
Eric Lippmann 16352fc10c Move Logger to the Application namespace
fixes #7148
2014-10-31 10:27:17 +01:00
Matthias Jentsch df69fd2264 Make Dns::getSrvRecors being more generic
The `target' property of a returned service record is too specific and causes
other properties being ignored.
2014-10-09 10:19:21 +02:00
Eric Lippmann 1b23fd7fbe monitoring: Don't support status.dat as backend
Icinga Web 2 will not support status.dat for now and maybe forever.
2014-10-07 13:22:07 +02:00
Alexander Klimov 051128b967 Icinga\Protocol\File\FileReader: don't use Icinga\Util\Enumerate 2014-10-02 13:59:53 +02:00
Alexander Klimov e192b939c2 Icinga\Protocol\File\FileIterator: extend EnumeratingFilterIterator 2014-10-02 13:59:52 +02:00
Eric Lippmann 0e7ca591ec Merge branch 'master' into bugfix/commands-6593
Conflicts:
	application/forms/Preference/GeneralForm.php
	application/views/helpers/FormDateTime.php
	modules/monitoring/application/forms/Command/CommandForm.php
2014-09-08 10:16:05 +02:00
Alexander Klimov 52c1d98beb Icinga\Protocol\File\FileReader: use Icinga\Util\Enumerate 2014-09-05 13:49:28 +02:00
Alexander Klimov 70146c43e7 Icinga\Protocol\File\FileReader: implement Icinga\Data\Selectable, and Countable 2014-09-04 16:59:37 +02:00
Alexander Klimov 3c4a719feb Revert "Icinga\Protocol\File\FileReader: implement Icinga\Data\Selectable, ...\Fetchable and Countable"
This reverts commit 7edbb8f27216e6faa0d0dc5a71b407748e9dd535.
2014-09-04 16:55:02 +02:00
Alexander Klimov 876b94cccf Icinga\Protocol\File\FileReader: implement Icinga\Data\Selectable, ...\Fetchable and Countable 2014-09-04 16:54:14 +02:00
Alexander Klimov f0969e0b2e Split Icinga\Protocol\File\FileReader into ...\FileReader and ...\FileIterator 2014-09-04 16:37:26 +02:00
Alexander Klimov fcd12073f8 Rename Icinga\Protocol\File\Query to ...\File\FileQuery 2014-09-04 16:37:25 +02:00
Alexander Klimov 36a3c36c1b Rename Icinga\Protocol\File\Reader to ...\File\FileReader 2014-09-04 16:37:24 +02:00
Eric Lippmann c3c0043307 Merge branch 'master' into bugfix/commands-6593 2014-09-03 23:23:20 +02:00
Alexander Klimov ede5b8f0b9 Icinga\Protocol\File\Reader::fetchPairs(): increase $index manually as the iterator's one makes trouble
refs #7060
2014-09-03 18:36:59 +02:00
Alexander Klimov e45f50408a Icinga\Protocol\File\Reader::fetchPairs(): rename variables
$skipLines -> $skip
$readLines -> $read

refs #7060
2014-09-03 16:14:14 +02:00
Alexander Klimov 88dde47b7a Foreach: add $value so that the value won't be assigned to $key
refs #7060
2014-09-03 15:39:25 +02:00
Alexander Klimov 3ade6da44d FileReaderException: extend IcingaException 2014-09-03 11:14:22 +02:00
Marius Hein ee6145a173 Ldap/Query: Remove __toString()
This is needed because of exception handling. Exceptions can now bubble
up for default handling. Method render() was renamed to create() because
the method create a query. Adjust the test for method create().

refs #5536
2014-09-02 10:17:01 +02:00
Marius Hein baf768040f LdapQuery: Use Ldap/Exception for errors
refs #5536
2014-09-02 09:55:57 +02:00
Eric Lippmann a01ee00c27 Merge branch 'bugfix/rebuild-form-builder-5525' into bugfix/commands-6593
Conflicts:
	library/Icinga/Protocol/Commandpipe/Transport/Transport.php
2014-08-29 17:24:44 +02:00
Alexander Klimov 45638b218c Throw IcingaException rather than Exception
fixes #7014
2014-08-27 16:03:15 +02:00