Package fr.enseirbmatmeca.apms.spring.security

Source Code of fr.enseirbmatmeca.apms.spring.security.ConstantRoleUserService

package fr.enseirbmatmeca.apms.spring.security;

import java.util.ArrayList;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import fr.enseirbmatmeca.apms.spring.model.project.Project;
import fr.enseirbmatmeca.apms.spring.model.user.User;
import fr.enseirbmatmeca.apms.spring.service.UserManager;

public class ConstantRoleUserService implements UserDetailsService {

  // ROLES
  public static final String ADMINISTRATOR = "ROLE_ADMINISTRATOR";
  public static final String USER = "ROLE_USER";

  private String name;

  protected String getName() {
    return this.name;
  }

  public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
    this.name = username;

    //TODO : si l'utilisateur n'existe pas, on l'enregistre dans la base de données à partir des informations du LDAP

    final String ROLE = USER;

    return new MyUserDetails() {
      public ArrayList<GrantedAuthority> getAuthorities() {

        ArrayList<GrantedAuthority> list = new ArrayList<GrantedAuthority>();
        GrantedAuthority authority = new GrantedAuthority() {
          public String getAuthority() {           

            //TODO : contacter la base de données et retourner le role (admin ou user) en fonction du login

            return ROLE;
          }
        };
        list.add(authority);

        return list;
      };

      public String getPassword() {
        return null;
      }

      public String getUsername() {
        return getName();
      }

      public boolean isAccountNonExpired() {
        return true;
      }

      public boolean isAccountNonLocked() {
        return true;
      }

      public boolean isCredentialsNonExpired() {
        return true;
      }

      public boolean isEnabled() {
        return true;
      }

      public List<ProjectRole> getListProjectRole(String idProject, UserManager userManager) {

        List<ProjectRole> listProjectRole = null;

        if (ROLE.equals(USER)){
         
          User user = new User();
          user.setLogin(getUsername());
         
          Project project = new Project();
          project.setId(idProject);

          //listProjectRole = userManager.getProjectRoles(user, project);
         
          return new ArrayList<ProjectRole>();
         
        }else if (ROLE.equals(ADMINISTRATOR)){
          // pas besoin de retourner une liste de projet car l'admin peut acc�der � tout
          return null;
        }

        return listProjectRole;
      }
    };
  }

}
TOP

Related Classes of fr.enseirbmatmeca.apms.spring.security.ConstantRoleUserService

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.