2012-07-04 34 views
1

我有一個用於在刪除用​​戶之前檢查登錄名和密碼的表單。這一個:在grails中刪除用shiro安全插件註冊的用戶

<table> 
     <g:form action="deleteUser"> 
      <tr> 
       <td><label for="username">Login: </label></td> 
       <td><g:textField name="username"/> 
      </tr> 
      <tr> 
       <td><label for="password">Password: </label></td> 
       <td><g:passwordField name="password"/></td> 
      </tr> 
      <tr> 
       <td colspan="2"><g:submitButton name="delete" value="Delete"/></td> 
      </tr> 
     </g:form> 
    </table> 

我怎麼能在這sha512hash如果密碼(用戶通過四郎插件註冊)做邏輯。我怎麼可以檢查密碼從密碼形式的字符串從哈希代碼從數據庫?我可以使用DbRealm類的驗證方法,如果是,那麼如何?

P.S.對不起我的英語不好!

回答

1

如果我確實以正確的方式理解您的問題,您只想在刪除用戶之前最後一次驗證用戶密碼。

在數據庫中,只存儲密碼的散列。但是,你可以與存儲密碼的哈希比較新密碼的哈希:

def dbhash = ShiroUser.findByUsername(params.username)?.passwordHash 
if (new Sha256Hash("password").toHex()==dbhash) { 
    //delete user 
} else { 
    //display error message 
} 

希望幫助!

+0

是的男人,這正是我所尋找的。最好的祝福 –