palio.designer.authorization
Class PerServicePasswordHandler

java.lang.Object
  extended by palio.designer.authorization.PerServicePasswordHandler
All Implemented Interfaces:
javax.security.auth.callback.CallbackHandler
Direct Known Subclasses:
AdminUserPerServicePasswordHandler, DesignerUserPerServicePasswordHandler

public class PerServicePasswordHandler
extends java.lang.Object
implements javax.security.auth.callback.CallbackHandler

Najbezpieczeniejszą metodą przesyłania hasła, jest przesłanie hasha złożonego z hasła oraz timestampu, który jest dołączony do wiadomości. W ten sposób nie można odtworzyć oryginalnego hasła, nie można też powtórzyć hasha by ponownie się zalogować (timestamp będzie przedawniony). Ta metoda wymaga jednak trzymania w bazie danych hasła oryginalnego (nie zahashowanego) ze względu na to, że do porównywania po stronie serwera generowany jest każdorazowo nowy hash (z timestampem z wiadomości). Dlatego przyjąłem metodę podwójnego hashowania. Do wysłania hasło jest hashowane samo, następnie ponownie wraz z timestampem. Do porównywania brane jest zahashowane hasło z bazy i hashowane wraz z timestampem. Ta metoda moim zdaniem daje bezpieczeństwo przesyłania hasła oraz jednocześnie niemożność wyciągnięcia oryginalnego hasła z bazy danych.


Constructor Summary
PerServicePasswordHandler(GlobalPasswordHandler globalPasswords)
           
 
Method Summary
 void handle(javax.security.auth.callback.Callback[] callbacks)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PerServicePasswordHandler

public PerServicePasswordHandler(GlobalPasswordHandler globalPasswords)
Method Detail

handle

public void handle(javax.security.auth.callback.Callback[] callbacks)
            throws java.io.IOException,
                   javax.security.auth.callback.UnsupportedCallbackException
Specified by:
handle in interface javax.security.auth.callback.CallbackHandler
Throws:
java.io.IOException
javax.security.auth.callback.UnsupportedCallbackException