Package br.com.fiapfuncionarios.autenticacao

Source Code of br.com.fiapfuncionarios.autenticacao.FiapFuncionariosAutenticadorBase

package br.com.fiapfuncionarios.autenticacao;

import java.security.acl.Group;

import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.NameCallback;
import javax.security.auth.callback.PasswordCallback;

import org.jboss.security.SimpleGroup;
import org.jboss.security.SimplePrincipal;

import br.com.fiapfuncionarios.dominio.Funcionario;

/**
* @author robson
*
*/
public class FiapFuncionariosAutenticadorBase {
 
 
  private CallbackHandler callbackHandler;
 
  private Subject subject;

  private Callback[] callbacks = { new NameCallback("login"), new PasswordCallback("senha", false)};
 
 
  public FiapFuncionariosAutenticadorBase(CallbackHandler callbackHandler , Subject subject){
    if (callbackHandler == null || subject == null)
      throw new IllegalArgumentException("CallbackHandler ou Subject esta null");
    this.callbackHandler = callbackHandler;
    this.subject = subject;
  }
 
 
  private void handle() throws Exception{
    callbackHandler.handle(callbacks);
  }


  protected String getLogin() throws Exception{
    handle();
    return ((NameCallback) callbacks[0]).getName() ;
  }
 
 
  protected String getPassword() throws Exception{
    handle();
    return new String(((PasswordCallback) callbacks[1]).getPassword());
  }
 
 
  protected Group[] adicionarUsuarioGrupo(Funcionario funcionario){
    if (funcionario == null)
      throw new IllegalArgumentException("Usuario null");
   
    SimpleGroup sg = new SimpleGroup("Roles");   
    sg.addMember(new SimplePrincipal(funcionario.getCargo()));
 
    return new Group[]{sg};
 
}
TOP

Related Classes of br.com.fiapfuncionarios.autenticacao.FiapFuncionariosAutenticadorBase

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.