Package fr.enseirbmatmeca.apms.tapestry.pages

Source Code of fr.enseirbmatmeca.apms.tapestry.pages.Security

package fr.enseirbmatmeca.apms.tapestry.pages;

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

import org.apache.tapestry5.annotations.CleanupRender;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Request;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;

import fr.enseirbmatmeca.apms.spring.security.MyUserDetails;
import fr.enseirbmatmeca.apms.spring.security.ProjectRole;
import fr.enseirbmatmeca.apms.spring.service.ProjectManager;
import fr.enseirbmatmeca.apms.spring.service.UserManager;
import fr.enseirbmatmeca.apms.spring.service.impl.ProjectManagerImpl;

public class Security {
  // gère la securité, vérifie l'authentification et retourne le nom d'utilisateur, le role et la liste de projets

  @Inject
  protected Request request;
 
  @Inject
  protected UserManager userManager;
 
  @Inject
  protected ProjectManager projectManager;


  protected String errorMessage;
 
  protected MyUserDetails tapestryPrincipal;
 
  public String getRole(){
    // ROLE_ADMINISTRATOR or ROLE_USER
    if (getTapestryPrincipal()!=null)
      return ((GrantedAuthority) ((ArrayList)getTapestryPrincipal().getAuthorities()).get(0)).getAuthority();
    else
      return null;
  }

  public String getUsername(){
    // login
    if (getTapestryPrincipal()!=null)
      return getTapestryPrincipal().getUsername();
    else
      return null;
  }
 
  public List<ProjectRole> getListProjectRole(String idProject){
    // list of project
    if (getTapestryPrincipal()!=null)
      return getTapestryPrincipal().getListProjectRole(idProject, userManager);
    else
      return null;
  }
 
  public MyUserDetails getTapestryPrincipal() {
    MyUserDetails tapestryPrincipal = null;
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

    if (authentication != null) {
      Object springSecurityPrincipal = authentication.getPrincipal();
      if (springSecurityPrincipal != null) {
        if (springSecurityPrincipal instanceof String) {
          tapestryPrincipal = null;
        } else {

          tapestryPrincipal = (MyUserDetails) springSecurityPrincipal;
        }
      }
    }
    return tapestryPrincipal;
  }

  public void onActivate(String loginError) {
    if("loginError=1".equals(loginError)) {
      this.errorMessage = "Error";
    }
  }
 
  @CleanupRender
  public void cleanup() {
    this.errorMessage = null;
  }
 
  public String getErrorMessage() {
    return this.errorMessage;
  }

}
TOP

Related Classes of fr.enseirbmatmeca.apms.tapestry.pages.Security

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.