feature #16735 [WIP] [Ldap] Marked the Ldap component as internal (csarrazi)

This PR was merged into the 2.8 branch.

Discussion
----------

[WIP] [Ldap] Marked the Ldap component as internal

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | no
| License       | MIT
| Doc PR        | not yet

As mentioned earlier, the LDAP component suffers from a few problems, addressed in PR #15994
However, as raised by @Tobion, the component does not yet have tests (they can be added at a later time, though), and is not considered stable yet.

Commits
-------

3f89b2c Marked the Ldap component as internal and removed Ldap constants polyfill
This commit is contained in:
Fabien Potencier 2015-11-29 11:47:37 +01:00
commit afe1668b41
7 changed files with 17 additions and 8 deletions

View File

@ -15,6 +15,8 @@ namespace Symfony\Component\Ldap\Exception;
* ConnectionException is throw if binding to ldap can not be established. * ConnectionException is throw if binding to ldap can not be established.
* *
* @author Grégoire Pineau <lyrixx@lyrixx.info> * @author Grégoire Pineau <lyrixx@lyrixx.info>
*
* @internal
*/ */
class ConnectionException extends \RuntimeException class ConnectionException extends \RuntimeException
{ {

View File

@ -15,6 +15,8 @@ namespace Symfony\Component\Ldap\Exception;
* LdapException is throw if php ldap module is not loaded. * LdapException is throw if php ldap module is not loaded.
* *
* @author Grégoire Pineau <lyrixx@lyrixx.info> * @author Grégoire Pineau <lyrixx@lyrixx.info>
*
* @internal
*/ */
class LdapException extends \RuntimeException class LdapException extends \RuntimeException
{ {

View File

@ -18,6 +18,8 @@ use Symfony\Component\Ldap\Exception\LdapException;
* @author Grégoire Pineau <lyrixx@lyrixx.info> * @author Grégoire Pineau <lyrixx@lyrixx.info>
* @author Francis Besset <francis.besset@gmail.com> * @author Francis Besset <francis.besset@gmail.com>
* @author Charles Sarrazin <charles@sarraz.in> * @author Charles Sarrazin <charles@sarraz.in>
*
* @internal
*/ */
class LdapClient implements LdapClientInterface class LdapClient implements LdapClientInterface
{ {

View File

@ -18,12 +18,11 @@ use Symfony\Component\Ldap\Exception\ConnectionException;
* *
* @author Grégoire Pineau <lyrixx@lyrixx.info> * @author Grégoire Pineau <lyrixx@lyrixx.info>
* @author Charles Sarrazin <charles@sarraz.in> * @author Charles Sarrazin <charles@sarraz.in>
*
* @internal
*/ */
interface LdapClientInterface interface LdapClientInterface
{ {
const LDAP_ESCAPE_FILTER = 0x01;
const LDAP_ESCAPE_DN = 0x02;
/** /**
* Return a connection bound to the ldap. * Return a connection bound to the ldap.
* *

View File

@ -1,10 +1,14 @@
Ldap Component Ldap Component
============= ==============
A Ldap client for PHP on top of PHP's ldap extension. A Ldap client for PHP on top of PHP's ldap extension.
This component also provides a stub for the missing Disclaimer
`ldap_escape` function in PHP versions lower than 5.6. ----------
This component is currently marked as internal, as it
still needs some work. Breaking changes will be introduced
in the next minor version of Symfony.
Documentation Documentation
------------- -------------

View File

@ -74,7 +74,7 @@ class LdapBindAuthenticationProvider extends UserAuthenticationProvider
$password = $token->getCredentials(); $password = $token->getCredentials();
try { try {
$username = $this->ldap->escape($username, '', LdapClientInterface::LDAP_ESCAPE_DN); $username = $this->ldap->escape($username, '', LDAP_ESCAPE_DN);
$dn = str_replace('{username}', $username, $this->dnString); $dn = str_replace('{username}', $username, $this->dnString);
$this->ldap->bind($dn, $password); $this->ldap->bind($dn, $password);

View File

@ -57,7 +57,7 @@ class LdapUserProvider implements UserProviderInterface
{ {
try { try {
$this->ldap->bind($this->searchDn, $this->searchPassword); $this->ldap->bind($this->searchDn, $this->searchPassword);
$username = $this->ldap->escape($username, '', LdapClientInterface::LDAP_ESCAPE_FILTER); $username = $this->ldap->escape($username, '', LDAP_ESCAPE_FILTER);
$query = str_replace('{username}', $username, $this->defaultSearch); $query = str_replace('{username}', $username, $this->defaultSearch);
$search = $this->ldap->find($this->baseDn, $query); $search = $this->ldap->find($this->baseDn, $query);
} catch (ConnectionException $e) { } catch (ConnectionException $e) {