Commit Graph

338 Commits

Author SHA1 Message Date
Matthias Jentsch 9e40f5f2c7 Remove option to skip certificate validation to prevent insecure configurations
Skipping certificate validation will allow MITM on every single request and not give any real security over just running unencrypted queries. On top of that, there is no way to configure this behavior from within PHP except of setting environment variables, which is really hacky and has side effects on other requests.

fixes #9607
2015-08-19 16:20:33 +02:00
Johannes Meyer f06be5c9bc LdapConnection: Let self::bind() return $this 2015-07-23 17:34:09 +02:00
Matthias Jentsch c55ba6dff4 fix coding guideline violations 2015-07-16 13:51:35 +02:00
Matthias Jentsch cf8b760ade Use Inspection API in LdapResourceForm
refs #9630
2015-07-15 19:33:47 +02:00
Matthias Jentsch 276aa43aa2 Upgrdae Inspection API again
Do not use InspectionException any more to reduce complexity of nested inspections, but keep error states
in the Inspection object itself.

refs #9630
2015-07-15 18:39:09 +02:00
Matthias Jentsch 6762ef053e Upgrade Inspection API
Reduce code duplication and stateffullnes by using InspectionException to indicate that an error was thrown, and only using one inspect function.

refs #9630
2015-07-15 17:51:18 +02:00
Matthias Jentsch 774d6ce94a Fix invalid function call in getCapabilities caused by refactoring 2015-07-15 15:36:32 +02:00
Matthias Jentsch af58d6964b Fix isEncrypted function broken by refactaring
refs #9608
2015-07-15 12:23:30 +02:00
Matthias Jentsch 7daa97a166 Clean up unneded code
Remove the now useless error handling cases in case encryption wasn't successful.

refs #9608
2015-07-15 11:31:56 +02:00
Matthias Jentsch 3b8b5b0022 Revert accidentally commited unneded changes 2015-07-15 11:16:06 +02:00
Matthias Jentsch 212111511a Fix violations of coding guidelines 2015-07-15 10:32:54 +02:00
Matthias Jentsch 84899e3e56 Revert some unneeded changes
refs #9605
2015-07-15 09:56:18 +02:00
Matthias Jentsch f4d8bfc309 Display connection test info when inspecting LdapConnections
refs #9605
2015-07-14 18:36:26 +02:00
Matthias Jentsch 3ddb8ca1bd Add abillity to discover AD version and vendor name to discovery
refs #9605
2015-07-14 18:32:44 +02:00
Matthias Jentsch 40d432100b Add a function to test the connection health
refs #9605
2015-07-14 18:29:58 +02:00
Matthias Jentsch 6599940e6c Introduce Interface for inspecting ldap connections
refs #9605
2015-07-14 12:30:16 +02:00
Johannes Meyer 23f7570ce0 LdapConnection: Don't run a discovery when preparing a new connection
fixes #9179
2015-07-10 10:45:10 +02:00
Johannes Meyer a8ac420897 LdapConnection: Establish a connection lazily 2015-07-10 09:51:39 +02:00
Johannes Meyer f956d09597 LdapConnection: Fetch attributes required for sorting the results 2015-06-25 15:51:19 +02:00
Johannes Meyer 6ff15acc1b LdapConnection: Fix that fetchColumn() returns results unordered 2015-06-25 15:50:15 +02:00
Johannes Meyer 3c47ef6826 Ldap\Exception: Rename to LdapException
refs #8954
2015-06-24 09:19:41 +02:00
Johannes Meyer 5dea14f04b Ldap\Query: Rename to LdapQuery
refs #8954
2015-06-24 09:14:25 +02:00
Johannes Meyer c3ad7b211a Ldap\Connection: Rename to LdapConnection
refs #8954
2015-06-24 09:05:29 +02:00
Johannes Meyer 7921e62a0c Ldap\Connection: Fix existing documentation
Part #2

refs #8954
2015-06-23 17:38:19 +02:00
Johannes Meyer f234b3b768 Ldap\Connection: Re-organize some methods..
..and add some missing documentation.

refs #8954
2015-06-23 17:37:10 +02:00
Johannes Meyer 372ca8859e Ldap\Connection: Some coding style fixes
refs #8954
2015-06-23 17:27:30 +02:00
Johannes Meyer 7640284564 Ldap\Connection: Add missing documentation
Part #2

refs #8954
2015-06-23 17:23:47 +02:00
Johannes Meyer b25bf4838b Ldap\Connection: Re-organize some properties
lowerCamelCase, initialisation in __construct, and stuff..

refs #8954
2015-06-23 17:22:26 +02:00
Johannes Meyer 9b0ac3000a Ldap\Connection: Drop unused property $count
refs #8954
2015-06-23 17:17:53 +02:00
Johannes Meyer 02ee460c08 Ldap\Connection: Fix existing documentation
Part #1

refs #8954
2015-06-23 17:12:24 +02:00
Johannes Meyer 778bf376b2 Ldap\Connection: Add missing documentation
Part #1

refs #8954
2015-06-23 17:06:35 +02:00
Johannes Meyer c32f9ae735 Ldap\Connection: Drop parameter $fields from method fetchDn() 2015-06-23 15:56:29 +02:00
Johannes Meyer 87e31f497e Ldap\Connection: Rename method deleteDN() to deleteDn() 2015-06-23 15:21:32 +02:00
Johannes Meyer 3f5cd4b670 Ldap\Connection: Rename method getDN() to getDn() 2015-06-23 15:16:53 +02:00
Johannes Meyer 56cb4c28c4 Ldap\Connection: Rename method hasDN() to hasDn() 2015-06-23 15:11:11 +02:00
Johannes Meyer 759e243d90 Ldap\Connection: Add method fetchPairs() 2015-06-23 15:05:47 +02:00
Johannes Meyer ac7a7e6674 Ldap\Connection: Add method fetchColumn() 2015-06-23 15:05:03 +02:00
Johannes Meyer 197861efda Ldap\Connection: Do not suppress errors for failed credential tests 2015-06-23 14:12:01 +02:00
Johannes Meyer 9d6d76a26d Ldap\Connection: Return false if nothing is found for fetchOne()
This should behave like DbConnection::fetchOne().

refs #8954
2015-06-23 12:41:50 +02:00
Johannes Meyer 6d8c56a12f Ldap\Connection: Return false if nothing is found for fetchRow()
This should behave like DbConnection::fetchRow().

refs #8954
2015-06-23 10:49:51 +02:00
Thomas Gelf c069414b1b LdapQuery: fix forgotten connection property rename 2015-06-18 11:31:32 +02:00
Johannes Meyer 5dd3950594 Ldap\Connection: Disable server side sorting as it's not working
refs #9364
2015-06-03 14:24:48 +02:00
Johannes Meyer 1a0d1702c9 Ldap\Connection: Do not sort *after* the result has been limited
fixes #9352
2015-06-03 14:22:38 +02:00
Johannes Meyer 5d50eabb44 FileReader: Mimic cursor capability 2015-06-02 10:39:49 +02:00
Johannes Meyer 7127d5eb39 Ldap\Connection: Connect automatically in case capabilities are not set yet 2015-06-01 12:20:36 +02:00
Johannes Meyer fb07f0b94c Merge branch 'master' into feature/user-and-group-management-8826
Conflicts:
	library/Icinga/Authentication/Backend/LdapUserBackend.php
	library/Icinga/Protocol/Ldap/Query.php
2015-05-19 14:14:03 +02:00
Johannes Meyer 73e8c51fd1 Ldap\Query: Remove method paginate() 2015-05-19 13:57:20 +02:00
Johannes Meyer 0e0341f78a It's the connection which provides a cursor, not the query 2015-05-18 16:01:58 +02:00
Johannes Meyer c91d3e52ac Merge branch 'master' into feature/user-and-group-management-8826 2015-05-12 15:39:02 +02:00
Matthias Jentsch 25f397042b Merge branch 'master' into feature/improve-multi-select-view-8565
Conflicts:
	modules/monitoring/application/controllers/HostsController.php
	modules/monitoring/application/controllers/ServicesController.php
	modules/monitoring/application/views/scripts/hosts/show.phtml
	modules/monitoring/application/views/scripts/list/hosts.phtml
	modules/monitoring/application/views/scripts/partials/host/objects-header.phtml
	modules/monitoring/application/views/scripts/partials/service/objects-header.phtml
	modules/monitoring/application/views/scripts/services/show.phtml
	modules/monitoring/public/css/module.less
	public/js/icinga/behavior/tooltip.js
2015-05-11 13:28:43 +02:00
Johannes Meyer 108f55128f Ldap\Query: Fix access of a filter's expression 2015-05-06 10:24:50 +02:00
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