Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package la.foton.componente.openam.login;
- import java.security.Principal;
- import java.util.Map;
- import javax.security.auth.Subject;
- import javax.security.auth.callback.Callback;
- import javax.security.auth.callback.NameCallback;
- import javax.security.auth.callback.PasswordCallback;
- import javax.security.auth.login.LoginException;
- import weblogic.security.principal.WLSGroupImpl;
- import com.sun.identity.authentication.spi.AMLoginModule;
- import com.sun.identity.authentication.util.ISAuthConstants;
- import com.sun.identity.shared.debug.Debug;
- public class BRBAuth extends AMLoginModule
- {
- private String loginUsuario;
- private Subject subject;
- private final static Debug debug = Debug.getInstance("BRBAuth");
- public BRBAuth()
- {
- super();
- }
- @Override
- public Principal getPrincipal()
- {
- return criaPrincipalUsuario(loginUsuario);
- }
- @SuppressWarnings("rawtypes")
- @Override
- public void init(Subject subject, Map sharedState, Map options)
- {
- if (debug.messageEnabled())
- {
- debug.message("BRBAuth::init");
- }
- this.subject = subject;
- }
- @Override
- public int process(Callback[] callbacks, int state) throws LoginException
- {
- NameCallback nameCB = (NameCallback) callbacks[0];
- PasswordCallback passwordCB = (PasswordCallback) callbacks[1];
- String usuario = nameCB.getName();
- String senha = new String(passwordCB.getPassword());
- if (debug.messageEnabled())
- {
- debug.message("BRBAuth::process user: " + usuario + " password: " + senha);
- }
- // TODO fazer autenticacao no LDAP
- this.loginUsuario = usuario;
- return ISAuthConstants.LOGIN_SUCCEED;
- // throw new InvalidPasswordException("Senha inválida");
- }
- private BRBAuthPrincipal criaPrincipalUsuario(String nomeUsuario)
- {
- // TODO recuperar grupos do BD
- subject.getPrincipals().add(new WLSGroupImpl("grupo-portal"));
- subject.getPrincipals().add(new WLSGroupImpl("grupo-funcionario-brb"));
- subject.getPrincipals().add(new WLSGroupImpl("grupo-sem-mapeamento"));
- if (debug.messageEnabled())
- {
- debug.message("BRBAuth::get principal user: " + nomeUsuario);
- }
- return new BRBAuthPrincipal(loginUsuario);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement