Commit Graph

287 Commits

Author SHA1 Message Date
Alexander Fuhr be696e5adf LogFileIterator: Fix missing closing bracket 2015-05-05 12:50:35 +02:00
Johannes Meyer d0a353c3da Ldap\Connection: Fix result counting
Missed to adjust this once I refactored the query execution..

refs #8826
2015-05-04 16:24:17 +02:00
Johannes Meyer 3e8ef5cc0f Ldap\Query: Quick fix for naive filter support
Since this will ignore any logical clauses and operators it must be
considered a quick fix and be dropped once real filter support exists.

refs #8826
2015-05-04 16:17:14 +02:00
Johannes Meyer 7b7a7c9299 Ldap\Connection: Add proper order support
Will now utilize SimpleQuery::compare() to provide support for multiple
order columns.

refs #8826
refs #7693
2015-05-04 11:36:38 +02:00
Johannes Meyer 664017573f Ldap\Connection: Add query alias support
refs #8826
2015-05-04 11:32:03 +02:00
Johannes Meyer 5baa0590b1 Ldap\Query: Extend SimpleQuery and add missing documentation
refs #8826
refs #8955
2015-05-04 11:26:27 +02:00
Johannes Meyer 99213432f5 Ldap\Connection: Rename fetchDN() to fetchDn()
We're using CamelCase names for methods.
2015-05-04 11:16:16 +02:00
Johannes Meyer 7178026b8b Ldap\Connection: Implement interface Selectable
refs #8826
2015-05-04 11:15:20 +02:00
Johannes Meyer d09ea2845d Merge branch 'master' into feature/user-and-group-management-8826 2015-04-30 15:20:40 +02:00
Johannes Meyer 3da144f199 Revert "Sort LDAP user list"
This reverts commit d4dc0177c0.
2015-04-28 15:57:33 +02:00
Alexander A. Klimov 7c0be30def Handle and display multiline log messages correctly 2015-04-24 17:36:49 +02:00
Alexander A. Klimov ec82b3bc09 Implement Icinga\Protocol\File\LogFileIterator 2015-04-24 17:36:48 +02:00
Alexander A. Klimov 3d53e6f9b5 Icinga\Protocol\File\FileReader::count(): call iterator_count() only once per instance and cache the returned value 2015-04-24 11:10:40 +02:00
Johannes Meyer 319ca3625c LdapUserBackend: Drop redundant method hasUser
refs #8826
2015-04-21 13:15:40 +02:00
Matthias Jentsch 46da404452 Add docstrings to ObjectList and coding style 2015-04-07 16:34:20 +02:00
Alexander Klimov 967a2e82dc Use (only) "@return $this" in fluent interfaces' documentation 2015-04-07 14:24:11 +02:00
Eric Lippmann 9ce9e0270c Fix that LDAP encryption settings have no effect
I renamed the directive for the encryption setting from 'connection' to 'encryption' before releasing Beta3 but
I forgot to change the Connection class accordingly.

fixes #8953
2015-04-02 10:41:25 +02:00
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