Hibernate Password

2 respostas
S

I ai galera, seguinte gostaria de saber como eu faço usando @annotations para criar um campo "password", não quero que essa String apareça no banco de dados.

Minha classe:

/** 
 * User Entity.
 */
@Entity
public class User {

   /** The id of user. */
   private Long id;

   /** The user name. */
   private String username;

   /**
    * The password
    */
   private String password;

   /** @return the id. */
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   public Long getId() {
      return id;
   }

   /** @param id the id to set. */
   public void setId(Long id) {
      this.id = id;
   }

   /** @return the passWord. */
   [b]QUERO QUE NÃO APAREÇA A STRING NO BANCO DE DADOS[/b]
   public String getPassWord() {
      return password;
   }

   /** @param passWord the passWord to set. */
   public void setPassWord(String passWord) {
      this.password = passWord;
   }

   /** @return the userName. */
   public String getUserName() {
      return username;
   }

   /** @param userName the userName to set. */
   public void setUserName(String userName) {
      this.username = userName;
   }

}

desde já, obrigado.

2 Respostas

J

Olha naum tem jeito, tu tem que persiste um String mesmo

Tu primeiramete jah um criptografa a senha e depois persiste como String

Geralmente, em Java faz-se Hash da senha- tu tipo de criptografia e depois

persiste da uma Olha na API MessageDigest do Java

um exemplo:

http://codare.net/2007/02/02/java-gerando-codigos-hash-md5-sha/

plentz

Você até poderia criar um UserType do Hibernate e implementar isso. Através de um UserType você poderia dizer que sempre que seu String password fosse persistido ele fosse criptografado e toda vez que você buscasse no banco ele descriptografasse.

Criado 25 de maio de 2007
Ultima resposta 27 de mai. de 2007
Respostas 2
Participantes 3