Package web

Source Code of web.CustomUserDetailsService

package web;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
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;



@Service
@Transactional(readOnly=true)
public class CustomUserDetailsService implements UserDetailsService {

   

  public UserDetails loadUserByUsername(String login)
      throws UsernameNotFoundException {

    web.User domainUser = new web.User();
    domainUser.setId(1);
    domainUser.setLogin(login);//tai khoan
    domainUser.setPassword("admin");//pass
    Role role = new Role();
    role.setId(1);//quyen may cho nay o doc duoi da tabase len nha!
    //o day co 2 quyen admin va member
    role.setRole("member");
    domainUser.setRole(role);
    //cho nay ong doc database laay pass voi mat khau truyen vao
    boolean enabled = true;
    boolean accountNonExpired = true;
    boolean credentialsNonExpired = true;
    boolean accountNonLocked = true;

    return new User(
        domainUser.getLogin(),
        domainUser.getPassword(),
        enabled,
        accountNonExpired,
        credentialsNonExpired,
        accountNonLocked,
        getAuthorities(domainUser.getRole().getId())
    );
  }

  public Collection<? extends GrantedAuthority> getAuthorities(Integer role) {
    List<GrantedAuthority> authList = getGrantedAuthorities(getRoles(role));
    return authList;
  }
 
  public List<String> getRoles(Integer role) {

    List<String> roles = new ArrayList<String>();

    if (role.intValue() == 1) {//1 laf admin
      roles.add("ROLE_MODERATOR");
      roles.add("ROLE_ADMIN");
    } else if (role.intValue() == 2) {//2 la member ong co the them 3 4 neu thich nhieu quyen
      roles.add("ROLE_MODERATOR");
    }
    return roles;
  }
 
  public static List<GrantedAuthority> getGrantedAuthorities(List<String> roles) {
    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
   
    for (String role : roles) {
      authorities.add(new SimpleGrantedAuthority(role));
    }
    return authorities;
  }

}
TOP

Related Classes of web.CustomUserDetailsService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.