Commit Graph

354 Commits

Author SHA1 Message Date
Johannes Meyer 57f30b1f92 Do not apply server side sorting for paged search requests
Revert this prior start working on #10147

refs #10147
2015-10-01 15:47:11 +02:00
Johannes Meyer e5f035c537 LdapConnection: Do not apply any custom vodoo on a ldap resource object
refs #9772
2015-09-29 12:08:17 +02:00
Johannes Meyer d720180348 LdapConnection: Properly apply limit and offset for unfolded queries
refs #9772
2015-09-29 11:41:21 +02:00
Johannes Meyer b0559206af LdapConnection: Do not substract 1 from a given offset, #2
refs #9772
2015-09-29 11:39:36 +02:00
Johannes Meyer 624f5050b7 LdapConnection: Count properly in case the result may get unfolded
refs #9772
2015-09-29 11:33:21 +02:00
Johannes Meyer 575875481a LdapConnection: Do not substract 1 from a given offset
refs #9772
2015-09-29 11:31:36 +02:00
Johannes Meyer 33c6f2e06b LdapConnection: Support unfolding multi value attributes
refs #9772
2015-09-29 09:47:30 +02:00
Eric Lippmann eff9249863 lib: Don't provide LDAP server-side sort request if the query has no order
refs #10147
2015-09-17 13:01:58 +02:00
Eric Lippmann a4fec6f42e lib: Fix LdapConnection::encodeSortRules()
- Fix reverseOrder encoding
- Support PHP < 5.4
2015-09-08 14:29:31 +02:00
Eric Lippmann 39c68dd5ce LDAP Auth: Fix Fatal error: Call to a member function hasOid() on a non-object 2015-09-04 15:01:05 +02:00
Eric Lippmann 297a4333cd lib/ldap: Use the indefinite form of the length octets for encoded sort rules where appropriate
I guess we may never need this, but hey :)

refs #9364
2015-09-04 11:58:11 +02:00
Eric Lippmann 9b22b24561 lib/ldap: Use ldap_count_entries for counting the result set 2015-09-04 09:57:04 +02:00
Eric Lippmann fa25ce7f2f lib/ldap: Set server side sorting after calling ldap_control_paged_result()
ldap_control_paged_result() seems to override already set server controls.

refs #9364
2015-09-03 17:50:24 +02:00
Eric Lippmann 9e11d539fd lib/ldap: Enable server side sorting if supported by the server
refs #9364
2015-09-03 17:48:53 +02:00
Eric Lippmann 00e5bbe91c lib/ldap: Fix LdapConnection::encodeSortRules()
refs #9364
2015-09-03 17:47:54 +02:00
Eric Lippmann 70a6157631 lib/ldap: Call getConnection before bind
Looks more natural
2015-09-03 17:11:56 +02:00
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