Changeset 791:291246f5412e


Ignore:
Timestamp:
01/19/12 21:48:23 (4 months ago)
Author:
xeraph
Branch:
default
Message:

added dom.passwd for password reset
added password change enforcement

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

    r787 r791  
    228228                        } 
    229229 
     230                        enforcePasswordChange(domain, admin); 
     231 
    230232                        Integer maxSession = orgApi.getOrganizationParameter(domain, "max_sessions", Integer.class); 
    231233                        if (maxSession != null) { 
     
    284286                        throw e; 
    285287                } 
     288        } 
     289 
     290        private void enforcePasswordChange(String domain, Admin admin) { 
     291                logger.trace("kraken dom: last password change [{}]", admin.getUser().getLastPasswordChange()); 
     292                long interval = new Date().getTime() - admin.getUser().getLastPasswordChange().getTime(); 
     293 
     294                Integer passwordExpiry = (Integer) orgApi.getOrganizationParameter(domain, "dom.user.password_expiry"); 
     295                if (passwordExpiry == null) 
     296                        passwordExpiry = 365; 
     297 
     298                long baseline = passwordExpiry * 86400 * 1000L; 
     299                logger.trace("kraken dom: checking expired password interval [{}], last change [{}]", interval, baseline); 
     300 
     301                if (interval > baseline) 
     302                        throw new DOMException("expired-password"); 
    286303        } 
    287304 
  • kraken-dom/src/main/java/org/krakenapps/dom/model/User.java

    r697 r791  
    6363        private Date updated = new Date(); 
    6464 
     65        @FieldOption(nullable = false) 
     66        private Date lastPasswordChange; 
     67 
    6568        public String getLoginName() { 
    6669                return loginName; 
     
    101104        public void setPassword(String password) { 
    102105                this.password = password; 
     106                this.lastPasswordChange = new Date(); 
    103107        } 
    104108 
     
    158162                this.updated = updated; 
    159163        } 
     164 
     165        public Date getLastPasswordChange() { 
     166                return lastPasswordChange; 
     167        } 
     168 
     169        public void setLastPasswordChange(Date lastPasswordChange) { 
     170                this.lastPasswordChange = lastPasswordChange; 
     171        } 
     172 
    160173} 
  • kraken-dom/src/main/java/org/krakenapps/dom/script/DomScript.java

    r742 r791  
    2020import org.krakenapps.dom.model.ProgramPack; 
    2121import org.krakenapps.dom.model.ProgramProfile; 
     22import org.krakenapps.dom.model.User; 
    2223import org.krakenapps.dom.model.Vendor; 
    2324 
     
    3435        private ApplicationApi appApi; 
    3536 
    36         public DomScript(GlobalConfigApi globalConfigApi, OrganizationApi orgApi, UserApi userApi, RoleApi roleApi, ProgramApi programApi, 
    37                         AreaApi areaApi, HostApi hostApi, ApplicationApi appApi) { 
     37        public DomScript(GlobalConfigApi globalConfigApi, OrganizationApi orgApi, UserApi userApi, RoleApi roleApi, 
     38                        ProgramApi programApi, AreaApi areaApi, HostApi hostApi, ApplicationApi appApi) { 
    3839                this.globalConfigApi = globalConfigApi; 
    3940                this.orgApi = orgApi; 
     
    5152        } 
    5253 
     54        @ScriptUsage(description = "reset password", arguments = { 
     55                        @ScriptArgument(name = "domain", type = "string", description = "org domain"), 
     56                        @ScriptArgument(name = "login name", type = "string", description = "login name"), 
     57                        @ScriptArgument(name = "password", type = "string", description = "new password") }) 
     58        public void passwd(String[] args) { 
     59                String domain = args[0]; 
     60                String loginName = args[1]; 
     61                String password = args[2]; 
     62 
     63                User user = userApi.getUser(domain, loginName); 
     64                user.setPassword(password); 
     65 
     66                userApi.updateUser(domain, user, true); 
     67                context.println("password reset"); 
     68        } 
     69 
    5370        public void install(String[] args) { 
    5471                InitialSchema.generate(context, globalConfigApi, orgApi, roleApi, programApi, areaApi, userApi); 
     
    6885        } 
    6986 
    70         @ScriptUsage(description = "add vendor", arguments = { @ScriptArgument(name = "domain", type = "string", description = "domain"), 
     87        @ScriptUsage(description = "add vendor", arguments = { 
     88                        @ScriptArgument(name = "domain", type = "string", description = "domain"), 
    7189                        @ScriptArgument(name = "name", type = "string", description = "name") }) 
    7290        public void addVendor(String[] args) { 
     
    7795        } 
    7896 
    79         @ScriptUsage(description = "add host type", arguments = { @ScriptArgument(name = "domain", type = "string", description = ""), 
     97        @ScriptUsage(description = "add host type", arguments = { 
     98                        @ScriptArgument(name = "domain", type = "string", description = ""), 
    8099                        @ScriptArgument(name = "vendor guid", type = "string", description = ""), 
    81100                        @ScriptArgument(name = "name", type = "string", description = ""), 
     
    92111        } 
    93112 
    94         @ScriptUsage(description = "add host extension", arguments = { @ScriptArgument(name = "domain", type = "string", description = ""), 
     113        @ScriptUsage(description = "add host extension", arguments = { 
     114                        @ScriptArgument(name = "domain", type = "string", description = ""), 
    95115                        @ScriptArgument(name = "host type guid", type = "string", description = ""), 
    96116                        @ScriptArgument(name = "type", type = "string", description = "host extension type"), 
Note: See TracChangeset for help on using the changeset viewer.