Commit Graph

154 Commits

Author SHA1 Message Date
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 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
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
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 3da144f199 Revert "Sort LDAP user list"
This reverts commit d4dc0177c0.
2015-04-28 15:57:33 +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
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
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
Eric Lippmann 16352fc10c Move Logger to the Application namespace
fixes #7148
2014-10-31 10:27:17 +01: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
Alexander Klimov 45638b218c Throw IcingaException rather than Exception
fixes #7014
2014-08-27 16:03:15 +02:00
Alexander Klimov 7ff51caed0 Remove leading backslashes from the targets of use statements
- use \Exception;
+ use Exception;
2014-08-27 15:51:49 +02:00
Eric Lippmann 1dea19504f Revert "Remove leading backslashes from the targets of use statements"
This reverts commit 87a5967501.

At least 'modules/doc/run.php' issues a warning about "The use statement with non-compound name 'Zend_Controller_Router_Route' has no effect"
2014-08-27 12:24:11 +02:00
Alexander Klimov 87a5967501 Remove leading backslashes from the targets of use statements
- use \Exception;
+ use Exception;
2014-08-27 11:16:44 +02:00
Johannes Meyer 3105c2059e Remove license headers from all files
refs #6309
2014-07-15 13:43:52 +02:00
Matthias Jentsch c18b6f26f0 Throw Ldap\Exception when something goes wrong in a Ldap connection 2014-06-25 12:41:17 +02:00
Matthias Jentsch 77a9dd1e6e Throw exception on fetchDN, when no row exists
Instead of fetchDN, authentication now uses hasUser to check if the user
exists before querying the password, to prevent the exception from messing
up the whole authentication process
2014-06-23 14:02:45 +02:00
Matthias Jentsch 521cc0cac4 Refactor Ldap and Dns utility functions and conform to coding guidelines
refs #6507
2014-06-18 14:38:44 +02:00
Matthias Jentsch bca166c644 Do not throw an exception when the username does not exist
refs #6457
2014-06-11 15:08:05 +02:00
Matthias Jentsch 305a025e7a Detect ldap default naming context
Read the entries in the RootDTS of the given ldap server, to discover
its default naming context and capabilities

refs #6097
refs #6096
2014-06-06 18:18:58 +02:00
Matthias Jentsch efe67377a8 Move dns discovery functions into separate class
Add functions to lookup and reverse-lookup domain names and move the ldap
discovery function into a separate class

refs #6093
2014-06-06 17:49:55 +02:00
Matthias Jentsch 953d22244a Add host discovery to authentication page
Find all domains for a given hostname.

refs #6093

Conflicts:

	application/forms/Install/AuthenticationPage.php
2014-06-06 17:49:55 +02:00
Thomas Gelf fea7e8993b Allow LDAP queries without objectClass filter 2014-03-21 10:31:12 +00:00
Thomas Gelf aed6d74ecd Add recursive delete support to LDAP Connection 2014-03-20 15:46:10 +00:00
Thomas Gelf 12933ee706 Add children count to LDAP root node 2014-03-20 15:45:36 +00:00
Thomas Gelf 462bb2e4d5 Fix obsolete Logger::warn in Ldap\Connection 2014-03-17 16:18:33 +00:00
Johannes Meyer 3555e66018 Make IcingaWeb using the new log wrapper
refs #5683
2014-02-26 11:19:52 +01:00
Thomas Gelf 9647c37516 Fix LDAP DN concatenation, allow to define a search base 2014-02-14 14:38:52 +00:00
Thomas Gelf 2288751aaf Better error message in LDAP connection capability test 2014-01-22 12:30:02 +00:00
Marius Hein afbe8f0fcb Implement move on LDAP Connection
refs #5202

Conflicts:
	library/Icinga/Protocol/Ldap/Connection.php
2013-12-17 14:32:48 +01:00
Matthias Jentsch bd38e998d7 Provide a cleaner interface for the Authentication Backends
refs #4786
2013-11-06 14:49:16 +01:00
Eric Lippmann ca1d50ae53 Rename Icinga 2 Web to Icinga Web 2 2013-10-23 15:11:06 +02:00
Marius Hein 439168ecfb Fix ldap connection port setting
refs #4941
2013-10-22 17:50:21 +02:00
Eric Lippmann a5908c9553 CS: Replace multiple empty lines with one
find application/ library/Icinga/ test/ modules/ -name *.php | xargs sed -i '/^$/N;/^\n$/D'
2013-09-04 18:36:10 +02:00
Eric Lippmann 35fd9fd391 CS: Remove whitespaces at end of line
find application/ library/ test/ modules/ -name *.php | xargs sed -i 's/\s\+$//'
2013-09-04 18:27:16 +02:00
Eric Lippmann 93ae6d6811 Framework: mv Icinga\Config\Config to Icinga\Application\Config
refs #4543
2013-08-12 15:02:25 +02:00
Matthias Jentsch 56e47fd084 Add an ini writer for configuration files
Add an ini writer that respects the file structure and the comments that may be
already present in the config file. Move Application/Config.php into
Config/Config.php.

refs #4352
2013-08-07 15:58:42 +02:00
Jannis Moßhammer 845654b77f Fix strict error on ldap auth-fail, ldap is default auth now
refs #3769
refs #4463
2013-07-26 15:29:13 +02:00
Marius Hein 5489c2fa2e Update license header
refs #4407
2013-07-15 12:26:10 +02:00
Eric Lippmann be3193a0d7 Update LDAP and Livestatus protocol 2013-07-12 13:41:48 +02:00
Marius Hein 6be510b05e License writer
Update license headers

refs #4262
2013-07-03 14:17:49 +02:00
Jannis Moßhammer 8192c19424 Fix Authentication workflow
- The authentication controller now uses the Authentication/Manager class,
also there were some issues in the Session creation, this has been removed
from the Bootstrap now, as the Controller must decide how to open a session
(read-only or read/write).
- The tests reflect a few chagnes, as the move from the CSRF token generation
to the Formbuilder.
- Notificaiton now doesn't use Zend Session

refs #4340
2013-06-25 11:54:42 +02:00