рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред рддреЛ ZK рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ
(рдПрдХ рдФрд░
рджреЛ ) рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИред рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдордиреЗ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд╕рдВрднрд╛рд▓реА рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджрд┐рдП рдЧрдП AbstractUserDetailsAuthenticationProvider рд╡рд░реНрдЧ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд UserDetails рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдХреЗ рд╕рд╣реА рд╣реИрдВред
рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред рд╣рдо рд╕реНрдкреНрд░рд┐рдВрдЧ-рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рд╕рд┐рд╕реНрдЯрдо -
UserDetailsService рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд▓реЙрдЧрд┐рди-рдкрд╛рд╕рд╡рд░реНрдб рдЪреЗрдХ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд▓реЛрдбрдпреВрдЬрд╝рд░рдмрд╛рдЗрдЬрд╝рд░рдирд╛рдо рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ UserDetailsServiceImpl рд╡рд░реНрдЧ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
package com.sample.service; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.GrantedAuthorityImpl; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.sample.data.Role; @SuppressWarnings("deprecation") @Service("userDetailsService") @Transactional public class UserDetailsServiceImpl implements UserDetailsService { @Autowired public ISecur userDao; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user; List<com.sample.data.User> listUser = userDao.findAllUsers(); if (listUser.size() == 0) { throw new UsernameNotFoundException(" "); } com.sample.data.User person = getUser(listUser, username); if (person == null) { throw new UsernameNotFoundException(" "); } else { user = new User(person.getUsername(), person.getPassword(), true, true, true, true, getAuthorities((Set<Role>) person.getRoleList())); } return user; } private com.sample.data.User getUser(List<com.sample.data.User> lp, String userName) { com.sample.data.User pers = null; for (com.sample.data.User p : lp) { if (userName.equals(p.getUsername())) { pers = p; } } return pers; } private Collection<GrantedAuthority> getAuthorities(Set<Role> set) { Collection<GrantedAuthority> authList = new ArrayList<GrantedAuthority>(); for (Role role : set) { authList.add(new GrantedAuthorityImpl(role.getName())); } return authList; } @SuppressWarnings("deprecation") private Collection<GrantedAuthority> getAuthorities(String grant_name) { Collection<GrantedAuthority> authList = new ArrayList<GrantedAuthority>(); authList.add(new GrantedAuthorityImpl("ROLE_USER")); return authList; } }
рдЕрдЧрд▓рд╛ рдЪрд░рдг рдкреНрд░рдорд╛рдгреАрдХрд░рдг-рдкреНрд░рдмрдВрдзрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ-config.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп:
<security:authentication-manager> <security:authentication-provider ref="userDetailsService"> </security:authentication-provider> </security:authentication-manager>
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
<security:authentication-manager> <security:authentication-provider user-service-ref="userDetailsService"/> </security:authentication-manager> <security:authentication-manager>
рдЕрдм рдпрд╣ рд╕рдм рд╣реИред
рдкреАрдПрд╕ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛, рдФрд░ рдЕрдЧрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдФрд░ рдЬреЗрдбрдХреЗ рджреЛрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реИ, рддреЛ рдкреВрдЫреЗрдВ, рдореИрдВ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛!
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред