Case Sensitive com hibernete

Ola Senhores.

Estou com o seguinte problema, na minha tela de login nao consigo implementar case sensitive.
Preciso deixar a minha tela de login com case sensitive, onde eu cadastro o meu usuario com um nome “jose” e com uma senha “AsSiM”.
Pois quando eu faço o login se eu digitar o nome “jose” e a senha “assim” ou “aSsIm” ou “ASSIM” ele faz o login normal e nao da nenhum erro. Ja tentei varias maneiras e ja fiz outro topico sobre esse assunto =/

Meu valida usuario hoje esta assim.

	public Usuario buscarUsuarioObj(Usuario usuarioBean) throws Exception {

		Session session = HibernateUtil.getSessionFactory().openSession();
		Usuario u = new Usuario();

		try {

			Transaction transaction = session.beginTransaction();
			Criteria criteria = session.createCriteria(Usuario.class);
			criteria.add(Restrictions.eq("nome", usuarioBean.getNome()));
			criteria.add(Restrictions.eq("senha", usuarioBean.getSenha()));
			
			u = (Usuario) criteria.uniqueResult();
			transaction.commit();

		} catch (Exception e) {
			e.printStackTrace();

		} finally {

			session.close();

		}

		return (Usuario) u;

	}

ja usei like, ja usei o .ignoreCase(), mas sem sucesso.
Será que alguem pode me ajudar, estou usando jsf com primefaces e hibernate (criteria).
Desde ja agradeço.

Provavelmente seu banco de dados está configurado para ignorar case, então ao fazer a consulta por SQL ele sempre irá encontrar.
O que você pode fazer é fazer a busca pelo nome somente e só retornar o usuário se a comparação do u.senha for válida…

[code]public Usuario buscarUsuarioObj(Usuario usuarioBean) throws Exception {

	Session session = HibernateUtil.getSessionFactory().openSession();
	Usuario u = new Usuario();

	try {

		Transaction transaction = session.beginTransaction();
		Criteria criteria = session.createCriteria(Usuario.class);
		criteria.add(Restrictions.eq("nome", usuarioBean.getNome()));
		
		u = (Usuario) criteria.uniqueResult();
		transaction.commit();
                    
                    if(u != null && u.getSenha().equals(usuarioBean.getSenha()))
                         return u;

	} catch (Exception e) {
		e.printStackTrace();

	} finally {

		session.close();

	}

	return null;

}[/code]

ok, testarei em casa assim que chegar, e posto o resultado. Obrigado

Pessoal mais ninguem???

Cara se você quer ignorar o case na hora de logar, ignora tbm na hora de gravar o usuário e a senha.

Quando der um submit no form que cadastra senha e usuario, da um toLowerCase() nos dois, assim vai pro banco tudo minusculo. Quando for fazer a busca para realizar o login, você da um toLowerCase() de novo nos dois antes de comprar com o que esta na base.

ajudei?

[]'s

Assim antes de buscar no banco ele vai por tudo em minuscula.

 criteria.add(Restrictions.eq("nome", usuarioBean.getNome().toLowerCase()));  
 criteria.add(Restrictions.eq("senha", usuarioBean.getSenha().toLowerCase()));

Só não pode esquecer de fazer o mesmo antes do insert do usuarioBean.

[]'s