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:
[code]
<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>[/code]
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>
[code]
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;
}
}[/code]
se alguém ja passou por algo semelhante, dê uma luz ai!! vlw