Changeset 305:994d47a9e1e3


Ignore:
Timestamp:
09/06/11 13:29:36 (5 months ago)
Author:
delmitz
Branch:
default
Convert:
svn:7c3792e6-d75b-4784-96a6-b298f655ee64/trunk@2739
Message:
  • added auto disable admin login lock (1hour).
  • modified password hash bug when user created.
Location:
kraken-dom/src/main/java/org/krakenapps/dom
Files:
3 edited

Legend:

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

    r302 r305  
    1616package org.krakenapps.dom.api.impl; 
    1717 
     18import java.util.Calendar; 
    1819import java.util.Date; 
    1920import java.util.List; 
     
    8384                if (success) { 
    8485                        admin.setLoginFailures(0); 
     86                        admin.setEnabled(true); 
    8587                } else { 
     88                        admin.setLastLoginFailedDateTime(new Date()); 
    8689                        admin.setLoginFailures(admin.getLoginFailures() + 1); 
    8790                        if (admin.isUseLoginLock() && admin.getLoginFailures() >= admin.getLoginLockCount()) 
     
    98101                        Admin admin = (Admin) em.createQuery("SELECT a FROM Admin a LEFT JOIN a.user u WHERE u.loginName = ?") 
    99102                                        .setParameter(1, nick).getSingleResult(); 
    100                         if (!admin.isEnabled()) 
    101                                 throw new AdminLockedException(); 
     103                        if (!admin.isEnabled()) { 
     104                                Date failed = admin.getLastLoginFailedDateTime(); 
     105                                Calendar c = Calendar.getInstance(); 
     106                                c.add(Calendar.HOUR_OF_DAY, -1); 
     107                                if (failed != null && failed.after(c.getTime())) 
     108                                        throw new AdminLockedException(); 
     109                                else 
     110                                        updateLoginFailures(admin, true); 
     111                        } 
    102112 
    103113                        admin.setLastLoginDateTime(new Date()); 
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/UserApiImpl.java

    r278 r305  
    180180        private void createUserInternal(User user) { 
    181181                EntityManager em = entityManagerService.getEntityManager(); 
     182                user.setPassword(hashPassword(user.getSalt(), user.getPassword())); 
    182183                user.setCreateDateTime(new Date()); 
    183184                user.setUpdateDateTime(new Date()); 
  • kraken-dom/src/main/java/org/krakenapps/dom/model/Admin.java

    r289 r305  
    6767        private int loginFailures; 
    6868 
     69        @Column(name = "last_login_failed_at") 
     70        private Date lastLoginFailedDateTime; 
     71 
    6972        @Column(name = "use_idle_timeout", nullable = false) 
    7073        private boolean useIdleTimeout; 
     
    149152        public void setLoginFailures(int loginFailures) { 
    150153                this.loginFailures = loginFailures; 
     154        } 
     155 
     156        public Date getLastLoginFailedDateTime() { 
     157                return lastLoginFailedDateTime; 
     158        } 
     159 
     160        public void setLastLoginFailedDateTime(Date lastLoginFailedDateTime) { 
     161                this.lastLoginFailedDateTime = lastLoginFailedDateTime; 
    151162        } 
    152163 
     
    247258                m.put("login_lock_count", loginLockCount); 
    248259                m.put("login_failures", loginFailures); 
     260                m.put("last_login_failed_at", lastLoginFailedDateTime); 
    249261                m.put("use_idle_timeout", useIdleTimeout); 
    250262                m.put("idle_timeout", idleTimeout); 
Note: See TracChangeset for help on using the changeset viewer.