六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 154|回复: 0

Seam Hash Password

[复制链接]

升级  13.33%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
70
 楼主| 发表于 2013-2-7 20:06:39 | 显示全部楼层 |阅读模式
http://shervinasgari.blogspot.com/2009/02/hash-user-password-in-seam-211-manually.html

public String saveProcessUser() {
       // Check if a new password has been entered
       if (currentUser.getPasswordHash() != null && !"".equals(currentUser.getPasswordHash())) {
           if (!currentUser.getPasswordHash().equals(passwordVerify)) {
               StatusMessages.instance().addFromResourceBundle("admin.wrongPassword");
               return "failure";
           }
       }

       // If passwordVerify is not empty, it generally means its a new password
       if (!passwordVerify.equals("")) {
           String hashPass = generatePasswordHash(currentUser.getPasswordHash(), currentUser.getUsername());
           log.debug("Setting new hash password: " + hashPass);
           currentUser.setPasswordHash(hashPass);
       }

       if (getCurrentUser().getId() != null) {
           entityManager.flush();
       } else {
           entityManager.persist(currentUser);
       }

       FacesMessages.instance().addToControlFromResourceBundle("successMessage", "admin.user.saved");
       return "success";
   }

   /**
    * This method will generate a hash password
    *
    * @param password - The password in cleartext
    * @param salt - The username is used as salt
    * @return - hash password based on password and username
    */
   private String generatePasswordHash(String password, String salt) {
       AnnotatedBeanProperty<UserPassword> userPasswordProperty = new AnnotatedBeanProperty<UserPassword>(ProcessUser.class, UserPassword.class);
       // Will get the hash value from annotation UserPassword in ProcessUser.class
       String algorithm = userPasswordProperty.getAnnotation().hash();
       return PasswordHash.instance().generateSaltedHash(password, salt, algorithm);
   }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表