Ignore:
Timestamp:
09/05/11 21:32:37 (9 months ago)
Author:
delmitz
Branch:
default
Convert:
svn:7c3792e6-d75b-4784-96a6-b298f655ee64/trunk@2734
Message:

usable otp password.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/AdminApiImpl.java

    r294 r300  
    2727import org.krakenapps.dom.api.AbstractApi; 
    2828import org.krakenapps.dom.api.AdminApi; 
     29import org.krakenapps.dom.api.OtpApi; 
    2930import org.krakenapps.dom.api.UserExtensionProvider; 
    3031import org.krakenapps.dom.exception.AdminLockedException; 
     
    3940import org.krakenapps.jpa.handler.JpaConfig; 
    4041import org.krakenapps.jpa.handler.Transactional; 
     42import org.slf4j.Logger; 
     43import org.slf4j.LoggerFactory; 
    4144 
    4245@Component(name = "dom-admin-api") 
     
    4447@JpaConfig(factory = "dom") 
    4548public class AdminApiImpl extends AbstractApi<Admin> implements AdminApi, UserExtensionProvider { 
     49        private Logger logger = LoggerFactory.getLogger(AdminApiImpl.class); 
     50 
    4651        @Requires 
    4752        private ThreadLocalEntityManagerService entityManagerService; 
    4853 
     54        @Requires(optional = true, nullable = false) 
     55        private OtpApi otpApi; 
     56 
    4957        @Override 
    5058        public String getName() { 
     
    5462        @Override 
    5563        public Admin login(String nick, String hash, String nonce) throws AdminNotFoundException, InvalidPasswordException { 
    56                 Admin admin = getAdmin(nick, hash, nonce); 
    57  
    58                 if (hash.equals(Sha1.hash(admin.getUser().getPassword() + nonce)) == false) { 
     64                Admin admin = getAdmin(nick); 
     65                String password = null; 
     66 
     67                logger.info("otpApi = " + otpApi); 
     68                if (otpApi != null && admin.isUseOtp()) 
     69                        password = Sha1.hash(otpApi.getOtpValue(admin.getOtpSeed())); 
     70                else 
     71                        password = admin.getUser().getPassword(); 
     72 
     73                if (hash.equals(Sha1.hash(password + nonce))) { 
     74                        updateLoginFailures(admin, true); 
     75                        return admin; 
     76                } else { 
    5977                        updateLoginFailures(admin, false); 
    6078                        throw new InvalidPasswordException(); 
    61                 } else 
    62                         updateLoginFailures(admin, true); 
    63  
    64                 return admin; 
     79                } 
    6580        } 
    6681 
     
    8297 
    8398        @Transactional 
    84         private Admin getAdmin(String nick, String hash, String nonce) { 
     99        private Admin getAdmin(String nick) { 
    85100                try { 
    86101                        EntityManager em = entityManagerService.getEntityManager(); 
Note: See TracChangeset for help on using the changeset viewer.