рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХрд╛рд░реНрдп рдПрдХ рдЯреЛрдХрди рдмрдирд╛рддреЗ рд╕рдордп рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде sha512 рд╕рдорд░реНрдерди рднреА рдерд╛ред рдпрд╣ рд▓реЗрдЦ рд╕рдВрдХреАрд░реНрдг рд░реВрдк рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВред
Symfony2 рдкрд░ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреЗ рдПрдкреАрдЖрдИ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕рдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ
F5UserBundle рдФрд░
WSSEAuthenticationBundle рдХреЛ
sha512 рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЬрд▓реНрдж рд╣реА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛
рдкрд░рд┐рд╢реНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдкрд░ рдореЗрд░реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдореВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕:
app/config/config.yml fos_user: db_driver: orm firewall_name: wsse_secured user_class: Acme\DemoBundle\Entity\User
рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЯреЛрдХрди рдкреАрдврд╝реА рдХреЛрдб:
src\Acme\DemoBundle\Controller\SecurityController.php
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рд░рдгред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Escapestudios рд╕реЗ рдорд╛рдирдХ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдРрд╕реА рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ:
WSSEAuthenticationBundle/Security/Core/Authentication/Provider/Provider.php
рдкреНрд░рд╛рдпрджреНрд╡реАрдкреАрдп рд░реЗрдЦрд╛ рдореЗрдВ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рд░реБрдЪрд┐ рдХреЗ рд╣реИрдВ; рдпрджрд┐ рдирдордХ рдХреЛ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЪрдорддреНрдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд╣рдорд╛рд░реЗ рдмрдВрдбрд▓ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВ:
src\Acme\DemoBundle\Security\Authentication\Provider\WsseProvider.php namespace Acme\DemoBundle\Security\Authentication\Provider; use Escape\WSSEAuthenticationBundle\Security\Core\Authentication\Provider\Provider; use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface; use Symfony\Component\Security\Core\Exception\CredentialsExpiredException; use Symfony\Component\Security\Core\Exception\NonceExpiredException; class WsseProvider extends Provider implements AuthenticationProviderInterface { protected function validateDigest($user, $digest, $nonce, $created, $secret) {
рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдЦрд┐рд░реА рдореЗрдВ, рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдмрдВрдбрд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдиреЙрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдорд╛рдиреНрдп рд╣реИред рдЗрд╕ рдЪреЗрдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЧреИрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
app/config/config.yml
рдЕрдм рд╣рдо рдбрд┐рдлреЗрдВрд╕ рдХреЛ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░реЗрдВред рдПрдирдХреЛрдбрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдРрд╕рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ:
app/config/security.yml security: firewalls: wsse_secured: wsse: encoder:
рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЯреЛрдХрди рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ / рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╣реИрд╢ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ "1" рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЬрдм Symfony2 рдореЗрдВ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ, рдпрд╣ "5000" (рд╕рд┐рдореНрдлрдиреА \ рдШрдЯрдХ \ рд╕реБрд░рдХреНрд╖рд╛ \ рдХреЛрд░ \ рдПрдирдХреЛрдбрд░ \ MessageDigestPasswordEncoder) рд╣реИред
рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ:
app/config/security.yml parameters: wsse_iterations: 300 security: firewalls: wsse_secured: wsse: encoder:
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдЬреЛрдбрд╝ рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг рднреА рдХрд╛рдлреА рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред
рдореИрдВ рдЖрдкрдХреЛ рдбрд┐рдЬрд┐рдЯреЛрд╡ рдмрд┐рдЬрдиреЗрд╕ рд╕реНрдХреВрд▓ рд╕реЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕
рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореИрдВ рд╕рд┐рдЦрд╛рддрд╛
рд╣реВрдВ :
рдореИрдВ рдПрдХ рдЬреВрдирд┐рдпрд░ PHP рдбреЗрд╡рд▓рдкрд░ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ! (рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП),
рд╕рд┐рдореНрдлрдиреА 2. рд▓рдЪреАрд▓реЗ рд╡рд┐рдХрд╛рд╕ (рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП), рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП:
рдкрд╛рдпрдерди / Django (рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП) рдФрд░
рд░реВрдмреА рдкрд░ рдкрдЯрд░рд┐рдпреЛрдВ рдореЗрдВ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ ред рдкреЗрд╢реЗрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд░реЗрд▓ рдкрд░ (рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП)ред рдЕрднреА рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЫреВрдЯ рдкрд░ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ
рд╕рд░реНрдЧреЗрдИ рд╣рд╛рд░реНрд▓рд╛рдирдЪреБрдХ, рд╡рд░рд┐рд╖реНрда PHP рдбреЗрд╡рд▓рдкрд░ / рдЯреАрдо рд▓реАрдб,
рдПрд╕рдИрд╕реАрдПрд▓ рдЧреНрд░реБрдк / рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрд▓реНрд╕ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛