рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд┐рдп рд╣рдмрд▓реНрдпреБрдЬрд╝рд░, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдХреЗ рдРрд╕реЗ рдкрд╣рд▓реБрдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдХреБрдВрдЬреА рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯред
- рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ред
- рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ред
рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдПрдХ рдЬрд╛рд╡рд╛ / рдЬрд╛рд╡рд╛рдИрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдЙрджреНрдпрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдмреЗрди рдЕрд▓реЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ 2003 рдХреЗ рдЕрдВрдд рдореЗрдВ "рдПрд╕реЗрдЧреА рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА" рдирд╛рдо рдХреЗ рддрд╣рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдереА, рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ 2004 рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рд╣реБрдИ рдереАред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░ рд▓реА рдЧрдИ рдФрд░ рдпрд╣ рдЗрд╕рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╣рд╛рдпрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрди рдЧрдИред рдкрд╣рд▓реА рдмрд╛рд░ рдЕрдкреНрд░реИрд▓ 2008 рдореЗрдВ рдирдП рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА 2.0.0 рдирд╛рдо рдХреЗ рддрд╣рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдореБрдЦреНрдп рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рд╡рд╕реНрддреБрдПрдБ:
рдкреНрд░рдорд╛рдгреАрдХрд░рдг
(1) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдирд╛рдо (рд▓реЙрдЧрд┐рди рдпрд╛ рдИрдореЗрд▓) рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ UsernamePasswordAuthenticationToken рд╡рд░реНрдЧ (рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг) рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП AuthenticationManager рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
(2) рдпрджрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ BadCredentialsException "Bad Credential" рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
(3) рдпрджрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдлрд▓ рд╣реИ, рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
(4) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП SecurityContextHolder.getContext () рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╕рдВрдЧ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SetAuthentication (...) рд╡рд┐рдзрд┐, рдЬрд╣рд╛рдБ рд╡рд╣ рд╡рд╕реНрддреБ рдЬреЛ AuthenticationManager рдХреЛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧрдлреНрд░реИрдорд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд░реНрдерди рдХрдиреЗрдХреНрд╢рди:
1. pom.xml <properties> <spring.version>3.1.4.RELEASE</spring.version> </properties> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>${spring.version}</version> </dependency>
2. web.xml <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
рдФрд░ рд╣рд╛рдВ,
Security.xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реА
<beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <http access-denied-page="/error403.jsp"> <intercept-url pattern="/index*" access="ROLE_USER,ROLE_ANONYMOUS"/> <intercept-url pattern="/add*" access="ROLE_USER"/> <intercept-url pattern="/delete/*" access="ROLE_ADMIN"/> <form-login login-page="/login.jsp" default-target-url="/index" authentication-failure-url="/login.jsp?error=true"/> <logout logout-url="/logout" logout-success-url="/index"/> <anonymous username="guest" granted-authority="ROLE_ANONYMOUS"/> <remember-me/> </http> <authentication-manager> <authentication-provider> <user-service> <user name="admin" password="pass" authorities="ROLE_ADMIN,ROLE_USER"/> <user name="user1" password="1111" authorities="ROLE_USER"/> <user name="user2" password="2222" disabled="true" authorities="ROLE_USER"/> </user-service> </authentication-provider> </authentication-manager> </beans:beans>
рд╕реБрд░рдХреНрд╖рд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ред xml рдХреЛрдб:рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреЗрдЬ login.jsp рдореЗрдВ рдПрдХреНрд╢рди = "/ j_spring_security_check" рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд╛рдо = "j_username" рдФрд░ рдирд╛рдо = "j_password" рдХреЗ рд╕рд╛рде рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рд╣реИрдВ, рд╕рд╛рде рд╣реА name = "_ spring_security_remember_me" рдХреЗ рд╕рд╛рде рдПрдХ рдЪреЗрдХрдмреЙрдХреНрд╕ рд╣реИред рдпреЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖ рдореВрд▓реНрдп рд╣реИрдВ рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдпрдерд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ / рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрда рдкрд░ рдкреБрдирдГ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИрдВред рдпрджрд┐ рдЖрдк http рд╡рд╕рдВрдд-рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдлрд╝реЙрд░реНрдо рдФрд░ url рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓рднреВрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрд╛ http рд╡рд╕рдВрдд-рд╕реБрд░рдХреНрд╖рд╛ <http-basic /> рдХреЛ рдордЬрдмреВрд░ рдХрд░рдХреЗ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИUrl / index * рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ ROLE_USER рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореЗрд╣рдорд╛рдиреЛрдВ (рд╕рднреА рдХрдиреЗрдХреНрд╢рди рдЬреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдирд╛рдо рдЕрддрд┐рдерд┐ рдФрд░ рдЕрдзрд┐рдХрд╛рд░ ROLE_ANONYMOUS рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ) рдХреЛ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
Url / рдРрдб * рддрдХ рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ ROLE_USER рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ url / delete * рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ ROLE_ADERIN рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХреГрдд рдПрдХреНрд╕реЗрд╕ рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдмрд╛рдВрдзрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ
рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
xml :
<global-method-security secured-annotations="enabled" />
рдФрд░ рдХреЛрдб рдореЗрдВ рд╣реА:
public interface AdminService { @Secured("ROLE_ADMIN") public Account editAccount(Account account); }
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ .xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЕрд░реНрдерд╛рддреН рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде UsernamePasswordAuthenticationToken рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдбреЗрдЯрд╛рдмреЗрд╕ (ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП) рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ UserDetailsService рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓реЛрдбрдпреВрдЬрд╝рд░рдмрд╛рдЗрдпрд░рдирд╛рдо рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ <рдкреНрд░рдорд╛рдгреАрдХрд░рдг-рдкреНрд░рджрд╛рддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕реЗрд╡рд╛-рд░реЗрдлрд░реА = "userDetelsService"> рдХреЛ рдЕрдкрдиреЗ UserDetailsService рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдмреАрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ JDBC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдмреАрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИ рдФрд░ <рдкреНрд░рдорд╛рдгреАрдХрд░рдг-рдкреНрд░рджрд╛рддрд╛> рдЗрд╕ рдмреАрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рджреЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо-рдХреНрд╡реЗрд░реА рдФрд░ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо-рдХреНрд╡реЗрд░реА рдХреЛ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/<yourDataBaseName>" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <authentication-provider> <jdbc-user-service data-source-ref="dataSource" users-by-username-query="select username, password, enabled from users where username = ?" authorities-by-username-query="select u.username, au.authority from users u, authorities au where u.id = au.user_id and u.username = ?" /> </authentication-provider> </beans>
рдкрд╛рд╕рд╡рд░реНрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рднреА рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
<authentication-manager> <authentication-provider> <password-encoder hash="sha"/> <user-service> <user name="jimi" password="d7e6351eaa13189a5a3641bab846c8e8c69ba39f" authorities="ROLE_USER, ROLE_ADMIN" /> <user name="bob" password="4e7421b1b8765d8f9406d87e7cc6aa784c4ab97f" authorities="ROLE_USER" /> </user-service> </authentication-provider> </authentication-manager> <password-encoder hash="sha"> <salt-source user-property="username"/> </password-encoder>
рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣рд╛рдБ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
(рез)
рдкреНрд░рд▓реЗрдЦрди(реи)
рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг