[DX] [Security] Renamed Token#getKey() to getSecret()
This commit is contained in:
parent
03e96d24f3
commit
24e0eb6453
|
@ -593,6 +593,86 @@ UPGRADE FROM 2.x to 3.0
|
|||
|
||||
* The `Resources/` directory was moved to `Core/Resources/`
|
||||
|
||||
* The `key` settings of `anonymous` and `remember_me` are renamed to `secret`.
|
||||
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
security:
|
||||
# ...
|
||||
firewalls:
|
||||
default:
|
||||
# ...
|
||||
anonymous: { key: "%secret%" }
|
||||
remember_me:
|
||||
key: "%secret%"
|
||||
```
|
||||
|
||||
```xml
|
||||
<!-- ... -->
|
||||
<config>
|
||||
<!-- ... -->
|
||||
|
||||
<firewall>
|
||||
<!-- ... -->
|
||||
|
||||
<anonymous key="%secret%"/>
|
||||
<remember-me key="%secret%"/>
|
||||
</firewall>
|
||||
</config>
|
||||
```
|
||||
|
||||
```php
|
||||
// ...
|
||||
$container->loadFromExtension('security', array(
|
||||
// ...
|
||||
'firewalls' => array(
|
||||
// ...
|
||||
'anonymous' => array('key' => '%secret%'),
|
||||
'remember_me' => array('key' => '%secret%'),
|
||||
),
|
||||
));
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
security:
|
||||
# ...
|
||||
firewalls:
|
||||
default:
|
||||
# ...
|
||||
anonymous: { secret: "%secret%" }
|
||||
remember_me:
|
||||
secret: "%secret%"
|
||||
```
|
||||
|
||||
```xml
|
||||
<!-- ... -->
|
||||
<config>
|
||||
<!-- ... -->
|
||||
|
||||
<firewall>
|
||||
<!-- ... -->
|
||||
|
||||
<anonymous secret="%secret%"/>
|
||||
<remember-me secret="%secret%"/>
|
||||
</firewall>
|
||||
</config>
|
||||
```
|
||||
|
||||
```php
|
||||
// ...
|
||||
$container->loadFromExtension('security', array(
|
||||
// ...
|
||||
'firewalls' => array(
|
||||
// ...
|
||||
'anonymous' => array('secret' => '%secret%'),
|
||||
'remember_me' => array('secret' => '%secret%'),
|
||||
),
|
||||
));
|
||||
```
|
||||
|
||||
### Translator
|
||||
|
||||
* The `Translator::setFallbackLocale()` method has been removed in favor of
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
2.8.0
|
||||
-----
|
||||
|
||||
* deprecated the `key` setting of `anonymous` and `remember_me` in favor of the
|
||||
`secret` setting.
|
||||
|
||||
2.6.0
|
||||
-----
|
||||
|
||||
|
|
|
@ -285,8 +285,22 @@ class MainConfiguration implements ConfigurationInterface
|
|||
->end()
|
||||
->arrayNode('anonymous')
|
||||
->canBeUnset()
|
||||
->beforeNormalization()
|
||||
->ifTrue(function ($v) { return isset($v['key']); })
|
||||
->then(function ($v) {
|
||||
if (isset($v['secret'])) {
|
||||
throw new \LogicException('Cannot set both key and secret options for security.firewall.anonymous, use only secret instead.');
|
||||
}
|
||||
|
||||
@trigger_error('security.firewall.anonymous.key is deprecated since version 2.8 and will be removed in 3.0. Use security.firewall.anonymous.secret instead.', E_USER_DEPRECATED);
|
||||
|
||||
$v['secret'] = $v['key'];
|
||||
|
||||
unset($v['key']);
|
||||
})
|
||||
->end()
|
||||
->children()
|
||||
->scalarNode('key')->defaultValue(uniqid())->end()
|
||||
->scalarNode('secret')->defaultValue(uniqid())->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('switch_user')
|
||||
|
|
|
@ -35,7 +35,7 @@ class RememberMeFactory implements SecurityFactoryInterface
|
|||
$authProviderId = 'security.authentication.provider.rememberme.'.$id;
|
||||
$container
|
||||
->setDefinition($authProviderId, new DefinitionDecorator('security.authentication.provider.rememberme'))
|
||||
->addArgument($config['key'])
|
||||
->addArgument($config['secret'])
|
||||
->addArgument($id)
|
||||
;
|
||||
|
||||
|
@ -56,7 +56,7 @@ class RememberMeFactory implements SecurityFactoryInterface
|
|||
}
|
||||
|
||||
$rememberMeServices = $container->setDefinition($rememberMeServicesId, new DefinitionDecorator($templateId));
|
||||
$rememberMeServices->replaceArgument(1, $config['key']);
|
||||
$rememberMeServices->replaceArgument(1, $config['secret']);
|
||||
$rememberMeServices->replaceArgument(2, $id);
|
||||
|
||||
if (isset($config['token_provider'])) {
|
||||
|
@ -120,10 +120,25 @@ class RememberMeFactory implements SecurityFactoryInterface
|
|||
public function addConfiguration(NodeDefinition $node)
|
||||
{
|
||||
$node->fixXmlConfig('user_provider');
|
||||
$builder = $node->children();
|
||||
$builder = $node
|
||||
->beforeNormalization()
|
||||
->ifTrue(function ($v) { return isset($v['key']); })
|
||||
->then(function ($v) {
|
||||
if (isset($v['secret'])) {
|
||||
throw new \LogicException('Cannot set both key and secret options for remember_me, use only secret instead.');
|
||||
}
|
||||
|
||||
@trigger_error('remember_me.key is deprecated since version 2.8 and will be removed in 3.0. Use remember_me.secret instead.', E_USER_DEPRECATED);
|
||||
|
||||
$v['secret'] = $v['key'];
|
||||
|
||||
unset($v['key']);
|
||||
})
|
||||
->end()
|
||||
->children();
|
||||
|
||||
$builder
|
||||
->scalarNode('key')->isRequired()->cannotBeEmpty()->end()
|
||||
->scalarNode('secret')->isRequired()->cannotBeEmpty()->end()
|
||||
->scalarNode('token_provider')->end()
|
||||
->arrayNode('user_providers')
|
||||
->beforeNormalization()
|
||||
|
|
|
@ -410,7 +410,7 @@ class SecurityExtension extends Extension
|
|||
$listenerId = 'security.authentication.listener.anonymous.'.$id;
|
||||
$container
|
||||
->setDefinition($listenerId, new DefinitionDecorator('security.authentication.listener.anonymous'))
|
||||
->replaceArgument(1, $firewall['anonymous']['key'])
|
||||
->replaceArgument(1, $firewall['anonymous']['secret'])
|
||||
;
|
||||
|
||||
$listeners[] = new Reference($listenerId);
|
||||
|
@ -418,7 +418,7 @@ class SecurityExtension extends Extension
|
|||
$providerId = 'security.authentication.provider.anonymous.'.$id;
|
||||
$container
|
||||
->setDefinition($providerId, new DefinitionDecorator('security.authentication.provider.anonymous'))
|
||||
->replaceArgument(0, $firewall['anonymous']['key'])
|
||||
->replaceArgument(0, $firewall['anonymous']['secret'])
|
||||
;
|
||||
|
||||
$authenticationProviders[] = $providerId;
|
||||
|
|
|
@ -71,7 +71,7 @@ $container->loadFromExtension('security', array(
|
|||
'x509' => true,
|
||||
'remote_user' => true,
|
||||
'logout' => true,
|
||||
'remember_me' => array('key' => 'TheKey'),
|
||||
'remember_me' => array('secret' => 'TheSecret'),
|
||||
),
|
||||
'host' => array(
|
||||
'pattern' => '/test',
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
$container->loadFromExtension('security', array(
|
||||
'providers' => array(
|
||||
'default' => array('id' => 'foo'),
|
||||
|
@ -8,7 +9,7 @@ $container->loadFromExtension('security', array(
|
|||
'main' => array(
|
||||
'form_login' => true,
|
||||
'remember_me' => array(
|
||||
'key' => 'TheyKey',
|
||||
'secret' => 'TheSecret',
|
||||
'catch_exceptions' => false,
|
||||
'token_provider' => 'token_provider_id',
|
||||
),
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<x509 />
|
||||
<remote-user />
|
||||
<logout />
|
||||
<remember-me key="TheyKey"/>
|
||||
<remember-me secret="TheSecret"/>
|
||||
</firewall>
|
||||
|
||||
<firewall name="host" pattern="/test" host="foo\.example\.org" methods="GET,POST">
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</sec:providers>
|
||||
<sec:firewall name="main">
|
||||
<sec:form-login/>
|
||||
<sec:remember-me key="TheKey" catch-exceptions="false" token-provider="token_provider_id" />
|
||||
<sec:remember-me secret="TheSecret" catch-exceptions="false" token-provider="token_provider_id" />
|
||||
</sec:firewall>
|
||||
</sec:config>
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ security:
|
|||
remote_user: true
|
||||
logout: true
|
||||
remember_me:
|
||||
key: TheKey
|
||||
secret: TheSecret
|
||||
host:
|
||||
pattern: /test
|
||||
host: foo\.example\.org
|
||||
|
|
|
@ -7,6 +7,6 @@ security:
|
|||
main:
|
||||
form_login: true
|
||||
remember_me:
|
||||
key: TheKey
|
||||
secret: TheSecret
|
||||
catch_exceptions: false
|
||||
token_provider: token_provider_id
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
CHANGELOG
|
||||
=========
|
||||
|
||||
2.8.0
|
||||
-----
|
||||
|
||||
* deprecated `getKey()` of the `AnonymousToken`, `RememberMeToken` and `AbstractRememberMeServices` classes
|
||||
in favor of `getSecret()`.
|
||||
|
||||
2.7.0
|
||||
-----
|
||||
|
||||
|
|
|
@ -22,16 +22,22 @@ use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
|
|||
*/
|
||||
class AnonymousAuthenticationProvider implements AuthenticationProviderInterface
|
||||
{
|
||||
private $key;
|
||||
/**
|
||||
* Used to determine if the token is created by the application
|
||||
* instead of a malicious client.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $secret;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $key The key shared with the authentication token
|
||||
* @param string $secret The secret shared with the AnonymousToken
|
||||
*/
|
||||
public function __construct($key)
|
||||
public function __construct($secret)
|
||||
{
|
||||
$this->key = $key;
|
||||
$this->secret = $secret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -43,7 +49,7 @@ class AnonymousAuthenticationProvider implements AuthenticationProviderInterface
|
|||
return;
|
||||
}
|
||||
|
||||
if ($this->key !== $token->getKey()) {
|
||||
if ($this->secret !== $token->getSecret()) {
|
||||
throw new BadCredentialsException('The Token does not contain the expected key.');
|
||||
}
|
||||
|
||||
|
|
|
@ -19,20 +19,20 @@ use Symfony\Component\Security\Core\Exception\BadCredentialsException;
|
|||
class RememberMeAuthenticationProvider implements AuthenticationProviderInterface
|
||||
{
|
||||
private $userChecker;
|
||||
private $key;
|
||||
private $secret;
|
||||
private $providerKey;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param UserCheckerInterface $userChecker An UserCheckerInterface interface
|
||||
* @param string $key A key
|
||||
* @param string $providerKey A provider key
|
||||
* @param string $secret A secret
|
||||
* @param string $providerKey A provider secret
|
||||
*/
|
||||
public function __construct(UserCheckerInterface $userChecker, $key, $providerKey)
|
||||
public function __construct(UserCheckerInterface $userChecker, $secret, $providerKey)
|
||||
{
|
||||
$this->userChecker = $userChecker;
|
||||
$this->key = $key;
|
||||
$this->secret = $secret;
|
||||
$this->providerKey = $providerKey;
|
||||
}
|
||||
|
||||
|
@ -45,14 +45,14 @@ class RememberMeAuthenticationProvider implements AuthenticationProviderInterfac
|
|||
return;
|
||||
}
|
||||
|
||||
if ($this->key !== $token->getKey()) {
|
||||
throw new BadCredentialsException('The presented key does not match.');
|
||||
if ($this->secret !== $token->getSecret()) {
|
||||
throw new BadCredentialsException('The presented secret does not match.');
|
||||
}
|
||||
|
||||
$user = $token->getUser();
|
||||
$this->userChecker->checkPreAuth($user);
|
||||
|
||||
$authenticatedToken = new RememberMeToken($user, $this->providerKey, $this->key);
|
||||
$authenticatedToken = new RememberMeToken($user, $this->providerKey, $this->secret);
|
||||
$authenticatedToken->setAttributes($token->getAttributes());
|
||||
|
||||
return $authenticatedToken;
|
||||
|
|
|
@ -20,20 +20,20 @@ use Symfony\Component\Security\Core\Role\RoleInterface;
|
|||
*/
|
||||
class AnonymousToken extends AbstractToken
|
||||
{
|
||||
private $key;
|
||||
private $secret;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $key The key shared with the authentication provider
|
||||
* @param string $user The user
|
||||
* @param RoleInterface[] $roles An array of roles
|
||||
* @param string $secret A secret used to make sure the token is created by the app and not by a malicious client
|
||||
* @param string $user The user
|
||||
* @param RoleInterface[] $roles An array of roles
|
||||
*/
|
||||
public function __construct($key, $user, array $roles = array())
|
||||
public function __construct($secret, $user, array $roles = array())
|
||||
{
|
||||
parent::__construct($roles);
|
||||
|
||||
$this->key = $key;
|
||||
$this->secret = $secret;
|
||||
$this->setUser($user);
|
||||
$this->setAuthenticated(true);
|
||||
}
|
||||
|
@ -47,13 +47,23 @@ class AnonymousToken extends AbstractToken
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the key.
|
||||
*
|
||||
* @return string The Key
|
||||
* @deprecated Since version 2.8, to be removed in 3.0. Use getSecret() instead.
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
@trigger_error(__method__.'() is deprecated since version 2.8 and will be removed in 3.0. Use getSecret() instead.', E_USER_DEPRECATED);
|
||||
|
||||
return $this->getSecret();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the secret.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getSecret()
|
||||
{
|
||||
return $this->secret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,7 +71,7 @@ class AnonymousToken extends AbstractToken
|
|||
*/
|
||||
public function serialize()
|
||||
{
|
||||
return serialize(array($this->key, parent::serialize()));
|
||||
return serialize(array($this->secret, parent::serialize()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -69,7 +79,7 @@ class AnonymousToken extends AbstractToken
|
|||
*/
|
||||
public function unserialize($serialized)
|
||||
{
|
||||
list($this->key, $parentStr) = unserialize($serialized);
|
||||
list($this->secret, $parentStr) = unserialize($serialized);
|
||||
parent::unserialize($parentStr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ use Symfony\Component\Security\Core\User\UserInterface;
|
|||
*/
|
||||
class RememberMeToken extends AbstractToken
|
||||
{
|
||||
private $key;
|
||||
private $secret;
|
||||
private $providerKey;
|
||||
|
||||
/**
|
||||
|
@ -28,16 +28,16 @@ class RememberMeToken extends AbstractToken
|
|||
*
|
||||
* @param UserInterface $user
|
||||
* @param string $providerKey
|
||||
* @param string $key
|
||||
* @param string $secret A secret used to make sure the token is created by the app and not by a malicious client
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function __construct(UserInterface $user, $providerKey, $key)
|
||||
public function __construct(UserInterface $user, $providerKey, $secret)
|
||||
{
|
||||
parent::__construct($user->getRoles());
|
||||
|
||||
if (empty($key)) {
|
||||
throw new \InvalidArgumentException('$key must not be empty.');
|
||||
if (empty($secret)) {
|
||||
throw new \InvalidArgumentException('$secret must not be empty.');
|
||||
}
|
||||
|
||||
if (empty($providerKey)) {
|
||||
|
@ -45,7 +45,7 @@ class RememberMeToken extends AbstractToken
|
|||
}
|
||||
|
||||
$this->providerKey = $providerKey;
|
||||
$this->key = $key;
|
||||
$this->secret = $secret;
|
||||
|
||||
$this->setUser($user);
|
||||
parent::setAuthenticated(true);
|
||||
|
@ -64,9 +64,9 @@ class RememberMeToken extends AbstractToken
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the provider key.
|
||||
* Returns the provider secret.
|
||||
*
|
||||
* @return string The provider key
|
||||
* @return string The provider secret
|
||||
*/
|
||||
public function getProviderKey()
|
||||
{
|
||||
|
@ -74,13 +74,23 @@ class RememberMeToken extends AbstractToken
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the key.
|
||||
*
|
||||
* @return string The Key
|
||||
* @deprecated Since version 2.8, to be removed in 3.0. Use getSecret() instead.
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
@trigger_error(__method__.'() is deprecated since version 2.8 and will be removed in 3.0. Use getSecret() instead.', E_USER_DEPRECATED);
|
||||
|
||||
return $this->getSecret();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the secret.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getSecret()
|
||||
{
|
||||
return $this->secret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -97,7 +107,7 @@ class RememberMeToken extends AbstractToken
|
|||
public function serialize()
|
||||
{
|
||||
return serialize(array(
|
||||
$this->key,
|
||||
$this->secret,
|
||||
$this->providerKey,
|
||||
parent::serialize(),
|
||||
));
|
||||
|
@ -108,7 +118,7 @@ class RememberMeToken extends AbstractToken
|
|||
*/
|
||||
public function unserialize($serialized)
|
||||
{
|
||||
list($this->key, $this->providerKey, $parentStr) = unserialize($serialized);
|
||||
list($this->secret, $this->providerKey, $parentStr) = unserialize($serialized);
|
||||
parent::unserialize($parentStr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ class AnonymousAuthenticationProviderTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$provider = $this->getProvider('foo');
|
||||
|
||||
$this->assertNull($provider->authenticate($this->getSupportedToken('bar')));
|
||||
$provider->authenticate($this->getSupportedToken('bar'));
|
||||
}
|
||||
|
||||
public function testAuthenticate()
|
||||
|
@ -50,9 +50,9 @@ class AnonymousAuthenticationProviderTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
protected function getSupportedToken($key)
|
||||
{
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\AnonymousToken', array('getKey'), array(), '', false);
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\AnonymousToken', array('getSecret'), array(), '', false);
|
||||
$token->expects($this->any())
|
||||
->method('getKey')
|
||||
->method('getSecret')
|
||||
->will($this->returnValue($key))
|
||||
;
|
||||
|
||||
|
|
|
@ -36,10 +36,10 @@ class RememberMeAuthenticationProviderTest extends \PHPUnit_Framework_TestCase
|
|||
/**
|
||||
* @expectedException \Symfony\Component\Security\Core\Exception\BadCredentialsException
|
||||
*/
|
||||
public function testAuthenticateWhenKeysDoNotMatch()
|
||||
public function testAuthenticateWhenSecretsDoNotMatch()
|
||||
{
|
||||
$provider = $this->getProvider(null, 'key1');
|
||||
$token = $this->getSupportedToken(null, 'key2');
|
||||
$provider = $this->getProvider(null, 'secret1');
|
||||
$token = $this->getSupportedToken(null, 'secret2');
|
||||
|
||||
$provider->authenticate($token);
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ class RememberMeAuthenticationProviderTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertEquals('', $authToken->getCredentials());
|
||||
}
|
||||
|
||||
protected function getSupportedToken($user = null, $key = 'test')
|
||||
protected function getSupportedToken($user = null, $secret = 'test')
|
||||
{
|
||||
if (null === $user) {
|
||||
$user = $this->getMock('Symfony\Component\Security\Core\User\UserInterface');
|
||||
|
@ -87,7 +87,7 @@ class RememberMeAuthenticationProviderTest extends \PHPUnit_Framework_TestCase
|
|||
->will($this->returnValue(array()));
|
||||
}
|
||||
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\RememberMeToken', array('getProviderKey'), array($user, 'foo', $key));
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\RememberMeToken', array('getProviderKey'), array($user, 'foo', $secret));
|
||||
$token
|
||||
->expects($this->once())
|
||||
->method('getProviderKey')
|
||||
|
|
|
@ -28,7 +28,7 @@ class AnonymousTokenTest extends \PHPUnit_Framework_TestCase
|
|||
public function testGetKey()
|
||||
{
|
||||
$token = new AnonymousToken('foo', 'bar');
|
||||
$this->assertEquals('foo', $token->getKey());
|
||||
$this->assertEquals('foo', $token->getSecret());
|
||||
}
|
||||
|
||||
public function testGetCredentials()
|
||||
|
|
|
@ -22,7 +22,7 @@ class RememberMeTokenTest extends \PHPUnit_Framework_TestCase
|
|||
$token = new RememberMeToken($user, 'fookey', 'foo');
|
||||
|
||||
$this->assertEquals('fookey', $token->getProviderKey());
|
||||
$this->assertEquals('foo', $token->getKey());
|
||||
$this->assertEquals('foo', $token->getSecret());
|
||||
$this->assertEquals(array(new Role('ROLE_FOO')), $token->getRoles());
|
||||
$this->assertSame($user, $token->getUser());
|
||||
$this->assertTrue($token->isAuthenticated());
|
||||
|
@ -31,7 +31,7 @@ class RememberMeTokenTest extends \PHPUnit_Framework_TestCase
|
|||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
*/
|
||||
public function testConstructorKeyCannotBeNull()
|
||||
public function testConstructorSecretCannotBeNull()
|
||||
{
|
||||
new RememberMeToken(
|
||||
$this->getUser(),
|
||||
|
@ -43,7 +43,7 @@ class RememberMeTokenTest extends \PHPUnit_Framework_TestCase
|
|||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
*/
|
||||
public function testConstructorKeyCannotBeEmptyString()
|
||||
public function testConstructorSecretCannotBeEmptyString()
|
||||
{
|
||||
new RememberMeToken(
|
||||
$this->getUser(),
|
||||
|
|
|
@ -36,24 +36,24 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
|
|||
protected $logger;
|
||||
protected $options;
|
||||
private $providerKey;
|
||||
private $key;
|
||||
private $secret;
|
||||
private $userProviders;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $userProviders
|
||||
* @param string $key
|
||||
* @param string $secret
|
||||
* @param string $providerKey
|
||||
* @param array $options
|
||||
* @param LoggerInterface $logger
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function __construct(array $userProviders, $key, $providerKey, array $options = array(), LoggerInterface $logger = null)
|
||||
public function __construct(array $userProviders, $secret, $providerKey, array $options = array(), LoggerInterface $logger = null)
|
||||
{
|
||||
if (empty($key)) {
|
||||
throw new \InvalidArgumentException('$key must not be empty.');
|
||||
if (empty($secret)) {
|
||||
throw new \InvalidArgumentException('$secret must not be empty.');
|
||||
}
|
||||
if (empty($providerKey)) {
|
||||
throw new \InvalidArgumentException('$providerKey must not be empty.');
|
||||
|
@ -63,7 +63,7 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
|
|||
}
|
||||
|
||||
$this->userProviders = $userProviders;
|
||||
$this->key = $key;
|
||||
$this->secret = $secret;
|
||||
$this->providerKey = $providerKey;
|
||||
$this->options = $options;
|
||||
$this->logger = $logger;
|
||||
|
@ -81,11 +81,21 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
|
|||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @deprecated Since version 2.8, to be removed in 3.0. Use getSecret() instead.
|
||||
*/
|
||||
public function getKey()
|
||||
{
|
||||
return $this->key;
|
||||
@trigger_error(__method__.'() is deprecated since version 2.8 and will be removed in 3.0. Use getSecret() instead.', E_USER_DEPRECATED);
|
||||
|
||||
return $this->getSecret();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getSecret()
|
||||
{
|
||||
return $this->secret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -122,7 +132,7 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
|
|||
$this->logger->info('Remember-me cookie accepted.');
|
||||
}
|
||||
|
||||
return new RememberMeToken($user, $this->providerKey, $this->key);
|
||||
return new RememberMeToken($user, $this->providerKey, $this->secret);
|
||||
} catch (CookieTheftException $e) {
|
||||
$this->cancelCookie($request);
|
||||
|
||||
|
|
|
@ -38,15 +38,15 @@ class PersistentTokenBasedRememberMeServices extends AbstractRememberMeServices
|
|||
* Constructor.
|
||||
*
|
||||
* @param array $userProviders
|
||||
* @param string $key
|
||||
* @param string $secret
|
||||
* @param string $providerKey
|
||||
* @param array $options
|
||||
* @param LoggerInterface $logger
|
||||
* @param SecureRandomInterface $secureRandom
|
||||
*/
|
||||
public function __construct(array $userProviders, $key, $providerKey, array $options = array(), LoggerInterface $logger = null, SecureRandomInterface $secureRandom)
|
||||
public function __construct(array $userProviders, $secret, $providerKey, array $options = array(), LoggerInterface $logger = null, SecureRandomInterface $secureRandom)
|
||||
{
|
||||
parent::__construct($userProviders, $key, $providerKey, $options, $logger);
|
||||
parent::__construct($userProviders, $secret, $providerKey, $options, $logger);
|
||||
|
||||
$this->secureRandom = $secureRandom;
|
||||
}
|
||||
|
|
|
@ -121,6 +121,6 @@ class TokenBasedRememberMeServices extends AbstractRememberMeServices
|
|||
*/
|
||||
protected function generateCookieHash($class, $username, $expires, $password)
|
||||
{
|
||||
return hash_hmac('sha256', $class.$username.$expires.$password, $this->getKey());
|
||||
return hash_hmac('sha256', $class.$username.$expires.$password, $this->getSecret());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ class AnonymousAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
|||
->method('authenticate')
|
||||
;
|
||||
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheKey', null, $authenticationManager);
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheSecret', null, $authenticationManager);
|
||||
$listener->handle($this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false));
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ class AnonymousAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
|||
->will($this->returnValue(null))
|
||||
;
|
||||
|
||||
$anonymousToken = new AnonymousToken('TheKey', 'anon.', array());
|
||||
$anonymousToken = new AnonymousToken('TheSecret', 'anon.', array());
|
||||
|
||||
$authenticationManager = $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface');
|
||||
$authenticationManager
|
||||
|
@ -56,7 +56,7 @@ class AnonymousAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
|||
->method('authenticate')
|
||||
->with(self::logicalAnd(
|
||||
$this->isInstanceOf('Symfony\Component\Security\Core\Authentication\Token\AnonymousToken'),
|
||||
$this->attributeEqualTo('key', 'TheKey')
|
||||
$this->attributeEqualTo('secret', 'TheSecret')
|
||||
))
|
||||
->will($this->returnValue($anonymousToken))
|
||||
;
|
||||
|
@ -67,7 +67,7 @@ class AnonymousAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
|||
->with($anonymousToken)
|
||||
;
|
||||
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheKey', null, $authenticationManager);
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheSecret', null, $authenticationManager);
|
||||
$listener->handle($this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false));
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@ class AnonymousAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
$authenticationManager = $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface');
|
||||
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheKey', $logger, $authenticationManager);
|
||||
$listener = new AnonymousAuthenticationListener($tokenStorage, 'TheSecret', $logger, $authenticationManager);
|
||||
$listener->handle($this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,10 +25,10 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertEquals('foo', $service->getRememberMeParameter());
|
||||
}
|
||||
|
||||
public function testGetKey()
|
||||
public function testGetSecret()
|
||||
{
|
||||
$service = $this->getService();
|
||||
$this->assertEquals('fookey', $service->getKey());
|
||||
$this->assertEquals('foosecret', $service->getSecret());
|
||||
}
|
||||
|
||||
public function testAutoLoginReturnsNullWhenNoCookie()
|
||||
|
@ -78,7 +78,7 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
|
|||
$returnedToken = $service->autoLogin($request);
|
||||
|
||||
$this->assertSame($user, $returnedToken->getUser());
|
||||
$this->assertSame('fookey', $returnedToken->getKey());
|
||||
$this->assertSame('foosecret', $returnedToken->getSecret());
|
||||
$this->assertSame('fookey', $returnedToken->getProviderKey());
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
|
|||
}
|
||||
|
||||
return $this->getMockForAbstractClass('Symfony\Component\Security\Http\RememberMe\AbstractRememberMeServices', array(
|
||||
array($userProvider), 'fookey', 'fookey', $options, $logger,
|
||||
array($userProvider), 'foosecret', 'fookey', $options, $logger,
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ class PersistentTokenBasedRememberMeServicesTest extends \PHPUnit_Framework_Test
|
|||
|
||||
$this->assertInstanceOf('Symfony\Component\Security\Core\Authentication\Token\RememberMeToken', $returnedToken);
|
||||
$this->assertSame($user, $returnedToken->getUser());
|
||||
$this->assertEquals('fookey', $returnedToken->getKey());
|
||||
$this->assertEquals('foosecret', $returnedToken->getSecret());
|
||||
$this->assertTrue($request->attributes->has(RememberMeServicesInterface::COOKIE_ATTR_NAME));
|
||||
}
|
||||
|
||||
|
@ -311,7 +311,7 @@ class PersistentTokenBasedRememberMeServicesTest extends \PHPUnit_Framework_Test
|
|||
$userProvider = $this->getProvider();
|
||||
}
|
||||
|
||||
return new PersistentTokenBasedRememberMeServices(array($userProvider), 'fookey', 'fookey', $options, $logger, new SecureRandom(sys_get_temp_dir().'/_sf2.seed'));
|
||||
return new PersistentTokenBasedRememberMeServices(array($userProvider), 'foosecret', 'fookey', $options, $logger, new SecureRandom(sys_get_temp_dir().'/_sf2.seed'));
|
||||
}
|
||||
|
||||
protected function getProvider()
|
||||
|
|
|
@ -140,7 +140,7 @@ class TokenBasedRememberMeServicesTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
$this->assertInstanceOf('Symfony\Component\Security\Core\Authentication\Token\RememberMeToken', $returnedToken);
|
||||
$this->assertSame($user, $returnedToken->getUser());
|
||||
$this->assertEquals('fookey', $returnedToken->getKey());
|
||||
$this->assertEquals('foosecret', $returnedToken->getSecret());
|
||||
}
|
||||
|
||||
public function provideUsernamesForAutoLogin()
|
||||
|
@ -264,7 +264,7 @@ class TokenBasedRememberMeServicesTest extends \PHPUnit_Framework_TestCase
|
|||
$userProvider = $this->getProvider();
|
||||
}
|
||||
|
||||
$service = new TokenBasedRememberMeServices(array($userProvider), 'fookey', 'fookey', $options, $logger);
|
||||
$service = new TokenBasedRememberMeServices(array($userProvider), 'foosecret', 'fookey', $options, $logger);
|
||||
|
||||
return $service;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
],
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"symfony/security-core": "~2.6|~3.0.0",
|
||||
"symfony/security-core": "~2.8|~3.0.0",
|
||||
"symfony/event-dispatcher": "~2.1|~3.0.0",
|
||||
"symfony/http-foundation": "~2.4|~3.0.0",
|
||||
"symfony/http-kernel": "~2.4|~3.0.0"
|
||||
|
|
Reference in New Issue