Problemas Login com JAAS

0 respostas
elugo

Boa tarde pessoal, estou enfrentando uma situação tanto quanto inusitada. O controle de acesso a minha aplicação é toda feita com JAAS e até então, funciona perfeitamente.
Foi solicitado uma verificação do usuario em outro sistema(web service) e para isto, preciso que antes da realização do login pelo JAAS, verificar se o usuário possui acesso a este outro sistema, caso possua, estará apto a realizar login no sistema.

A tela de login com jaas é a seguinte:
<form id="formLogin" action="j_security_check" method="post">
	<app:fieldset fieldsetStyleClass="loginFS" >
		<h:panelGrid id="args" columns="2" cellspacing="2" styleClass="form" columnClasses="label,value">
			<f:facet name="header">
				<h:outputText value="#{azi:key('comum.global.legenda.login')}" />
			</f:facet>

			<h:column >
				<label for="j_username" class="required">#{msg['comum.global.field.login.label']}</label>
				<span class="required-mark"> *</span>
			</h:column>
			<h:column >
				<input type="text"  class="input-login" name="j_username" id="j_username"  onfocus="this.style.background= '#f8f3d9';" onblur="this.style.background= '#FFFFFF';" maxlength="32" />
			</h:column>

			<h:column >
				<label for="j_password" class="required" >#{msg['comum.global.field.passwd.label']}</label>
				<span class="required-mark"> *</span>
			</h:column>
			<h:column >
				<input type="password" class="input-login" name="j_password" id="j_password" maxlength="32" />
			</h:column>
			<f:facet name="footer">
				<h:panelGroup>
					<div style="text-align: center">
						<input type="submit" name="login" id="login" value="#{msg['comum.global.botao.login']}" onclick="beforeAjax();" />
						<input type="reset" name="limpar" id="limpar" value="#{msg['comum.global.botao.limpar']}" onclick="beforeAjax();" />
					</div>
				</h:panelGroup>
			</f:facet>
			</h:panelGrid>
			</app:fieldset>
		</form>

esta é a tela de login que funciona perfeitamente com jaas, mas como eu preciso pegar os dados (login e senha), criei outra tela de login para testar e tentei pegar os dados no managed-bean. Téoricamente era para dar tudo certo, mas.... quando executo o método de logar, o mesmo não é executado e ao debugar, constatei que os métodos gets são chamados e que os valores estão nulos.

<h:form id="loginForm">
			<app:fieldset fieldsetStyleClass="loginFS" legend="#{azi:key('comum.global.legenda.login')}">
				<h:panelGrid id="args" columns="2" cellspacing="2" styleClass="form" columnClasses="label,value">
					<h:column>
						<app:label label="#{msg['comum.global.field.login.label']}" for="login" required="true"/>
					</h:column>

					<h:column >
						<h:inputText id="login" required="true" value="#{loginMBean.usuario}" onfocus="this.style.background= '#f8f3d9';" onblur="this.style.background= '#FFFFFF';" maxlength="32" />
					</h:column>

					<h:column>
						<app:label label="#{msg['comum.global.field.passwd.label']}" for="senha" required="true"/>
					</h:column>
					
					<h:column >
						<h:inputSecret value="#{loginMBean.senha}" id="senha" maxlength="32" />
					</h:column>
					
					<f:facet name="footer">
						<h:panelGroup>
							<div style="text-align: center">
								<h:commandButton value="#{msg['comum.global.botao.login']}" action="#{loginMBean.login}" />
								<input type="reset" name="limpar" id="limpar" value="#{msg['comum.global.botao.limpar']}" onclick="beforeAjax();" />
							</div>
					 	</h:panelGroup>
					</f:facet>
				</h:panelGrid>
			</app:fieldset>
		</h:form>
public class LoginMBean {
    
    private String usuario;
    
    private String senha;
    
    public String login() {
        String retorno = null;
        
        SecurityHelper jaasHelper = new SecurityHelper("authLoginModule");
        
        try {
            jaasHelper.authenticate(usuario, senha);
            return "home.xhtml?faces-redirect=true";
        } catch (LoginException e) {
            FacesUtil.addErrorMessage(e.getCause().getMessage());
        }
        return retorno;
    }
    
    public String getUsuario() {
        return usuario;
    }
    
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }
    
    public String getSenha() {
        return senha;
    }
    
    public void setSenha(String senha) {
        this.senha = senha;
    }
}

se alguém ja passou por algo semelhante, dê uma luz ai!! vlw

Criado 27 de outubro de 2010
Respostas 0
Participantes 1