Problema login programático

5 respostas
Matheus_Moraes

Seguinte…

estou usando um ambiente JBOSS 7.1, JEE 6, MAVEN. A estrutura do meu projeto é a seguinte

  • projeto
    – projeto ear
    – projeto ejb
    – projeto web1
    – projeto web2

Alterei os dados do meu standalone.xml

<security-domain name="ProjectSD" cache-type="default">
                    <authentication>
                        <login-module code="Database" flag="required">
                            <module-option name="dsJndiName" value="ProjectDS"/>
                            <module-option name="principalsQuery" value="select senha from usuarios where login=?"/>
                            <module-option name="rolesQuery" value="SELECT g.sigla, 'Roles' FROM roles g JOIN usuarios_r ur ON ur.roles_id = g.id JOIN usuarios u ON u.id = ur.usuario_id WHERE u.login=?"/>
                            <module-option name="hashAlgorithm" value="MD5"/>
                        </login-module>
                    </authentication>     
                </security-domain>

então no meu web.xml adicionei

<login-config>
		<realm-name>ProjectSD</realm-name>
	</login-config>

e o método que chamo para efetuar o login é este

public String efetuarLogin() {
		FacesContext context = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
		try {
			request.login(dto.getLogin(), dto.getSenha());
		} catch (ServletException e) {
			e.printStackTrace();
			titledErrorMessage("","Login ou senha incorretos!");
			return rootFoward("index");
		}
		
		Usuario usuario = (Usuario) usuarioService.pesquisa(dto.getLogin(), dto.getSenha());
		return concluirLogin(usuario);
	}

Porém, sempre ocorre este erro:

javax.servlet.ServletException: No authenticator available for programmatic login

Alguém sabe o que poderia ser?

5 Respostas

lele_vader

Você chegou a configurar no standalone.xml ?

Aqui tem um exemplo, mesmo que ainda não esteja completo.

Matheus_Moraes

Configurei sim…

Consegui trabalhar com acesso ao BD tranquilamente, mas quando coloquei esse login programático que não consigo mais progredir. Ele sempre mostra essa exceção quando chamo o método request.login()

A configuração do Realm que coloquei no standalone.xml está acima, e também configurei o DS e adicionei o MySQL…

lele_vader

Você está transformando o que o usuário digitou em MD5, antes de chamar a autenticação ?

Matheus_Moraes

Eu tentei tirar o MD5 do realm e fazer direto, e vice versa, mas o erro é sempre o mesmo…

lele_vader

Dá uma olhada nessa página aqui.

Aqui acho que dizem para configurar o web-resource-collection para dizer quais páginas são protegidas no web.xml

https://community.jboss.org/thread/161511

Criado 28 de novembro de 2012
Ultima resposta 28 de nov. de 2012
Respostas 5
Participantes 2