From 88470ddb6068d6f23e456b254c76914ab2a765e4 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期四, 17 十二月 2020 10:59:22 +0800 Subject: [PATCH] 强制改密码 --- src/main/java/com/nanometer/smartlab/controller/LoginController.java | 15 +++++++ src/main/java/com/nanometer/smartlab/controller/UserMngController.java | 5 +- src/main/webapp/index.xhtml | 74 ++++++++++++++++++++++++++++-------- 3 files changed, 75 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/LoginController.java b/src/main/java/com/nanometer/smartlab/controller/LoginController.java index c5626bc..0882071 100644 --- a/src/main/java/com/nanometer/smartlab/controller/LoginController.java +++ b/src/main/java/com/nanometer/smartlab/controller/LoginController.java @@ -30,6 +30,7 @@ private String loginAcct; private String loginPwd; + private static Byte ischange = 0; public String login() { UsernamePasswordToken token = new UsernamePasswordToken(loginAcct, loginPwd); @@ -48,6 +49,11 @@ if (currentUser.isAuthenticated()) {//登录成功进入主页 SysUser user = this.sysUserService.getSysUserByAccount(loginAcct); currentUser.getSession(true).setAttribute(Constants.SESSION_USER, user); + + String PW_PATTERN = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$"; + if (!loginPwd.matches(PW_PATTERN)) { + ischange = 1; + } this.menuController.initPage(); return Constants.PAGE_INDEX + Constants.REDIRECT; @@ -77,4 +83,13 @@ public void setLoginPwd(String loginPwd) { this.loginPwd = loginPwd; } + + + public Byte getIschange() { + return ischange; + } + + public void setIschange(Byte ischange) { + this.ischange = ischange; + } } diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java index d7aefe8..5620c15 100644 --- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java @@ -99,8 +99,7 @@ } public void updatePassword() { - this.username = getUser().getName(); - this.sysUser = getUser(); + this.username = getUser().getName(); } @@ -267,6 +266,8 @@ public String updatePasswordAction() throws NoSuchAlgorithmException, CharacterCodingException { + this.sysUser = getUser(); + if(!this.sysUser.getPassword().equals(MD5Utils.encode(this.oriPassword))) { FacesUtils.warn("原密码错误,请重新输入!"); diff --git a/src/main/webapp/index.xhtml b/src/main/webapp/index.xhtml index 28befa8..789c191 100644 --- a/src/main/webapp/index.xhtml +++ b/src/main/webapp/index.xhtml @@ -27,6 +27,7 @@ <p:outputLabel value="智慧实验室试剂全过程安全管理系统" style="color: #ffd74a"></p:outputLabel> </p:column> <p:column styleClass="header-personal"> + <h:inputHidden id="ischange" value="#{loginController.ischange}"></h:inputHidden> <p:commandLink class="userName" style="margin-right: 30px" value="#{menuController.userName}" action="#{userMngController.updatePassword}" oncomplete="PF('dialogPassword').show();" update=":dialogPassword,:dialogFormPassword"></p:commandLink > <p:commandLink class="logout" action="#{loginController.logout}" ajax="false"></p:commandLink> </p:column> @@ -36,32 +37,71 @@ <p:dialog modal="true" header="#{'修改密码'}" appendTo="@(body)" id="dialogPassword" widgetVar="dialogPassword" resizable="false" width="420"> - <h:form id="dialogFormPassword"> - <p:panelGrid columns="1" styleClass="content"> - <p:outputLabel value="账号"></p:outputLabel> - <p:inputText value="#{userMngController.username}" maxlength="100" + <h:form id="dialogFormPassword"> + <p:panelGrid columns="1" styleClass="content"> + <p:outputLabel value="账号"></p:outputLabel> + <p:inputText value="#{userMngController.username}" maxlength="100" required="true" requiredMessage="请输入原密码"></p:inputText> - <p:outputLabel value="原密码"></p:outputLabel> - <p:password value="#{userMngController.oriPassword}" maxlength="100" + <p:outputLabel value="原密码"></p:outputLabel> + <p:password value="#{userMngController.oriPassword}" maxlength="100" required="true" requiredMessage="请输入原密码"></p:password> - <p:outputLabel value="新密码"></p:outputLabel> - <p:password value="#{userMngController.newPassword}" maxlength="100" + <p:outputLabel value="新密码"></p:outputLabel> + <p:password value="#{userMngController.newPassword}" maxlength="100" required="true" requiredMessage="请输入新密码"></p:password> - <p:outputLabel value="确认密码"></p:outputLabel> + <p:outputLabel value="确认密码"></p:outputLabel> <p:password value="#{userMngController.newPasswordSecond}" maxlength="100" required="true" requiredMessage="请输入确认密码"></p:password> - </p:panelGrid> - <p:panel styleClass="btn"> - <p:commandButton value="修改" actionListener="#{userMngController.updatePasswordAction}" + </p:panelGrid> + <p:panel styleClass="btn"> + <p:commandButton value="修改" actionListener="#{userMngController.updatePasswordAction}" process="@form"> - <p:confirm header="确认" message="确认操作?"></p:confirm> - </p:commandButton> - </p:panel> - </h:form> - </p:dialog> + <p:confirm header="确认" message="确认操作?"></p:confirm> + </p:commandButton> + </p:panel> + </h:form> + </p:dialog> + + <p:dialog modal="true" header="#{'重置密码'}" appendTo="@(body)" + id="changePassword" widgetVar="changePassword" + width="420" style="left: 650px;top: 250px;" + closable="false"> + <h:form id="changeFormPassword"> + <p:panelGrid columns="1" styleClass="content"> + <p:outputLabel value="账号"></p:outputLabel> + <p:inputText value="#{menuController.userName}" maxlength="100" + readonly="true"></p:inputText> + + <p:outputLabel value="原密码"></p:outputLabel> + <p:password value="#{userMngController.oriPassword}" maxlength="100" + required="true" requiredMessage="请输入原密码"></p:password> + + <p:outputLabel value="新密码"></p:outputLabel> + <p:password value="#{userMngController.newPassword}" maxlength="100" + required="true" requiredMessage="请输入新密码"></p:password> + + <p:outputLabel value="确认密码"></p:outputLabel> + <p:password value="#{userMngController.newPasswordSecond}" maxlength="100" + required="true" requiredMessage="请输入确认密码"></p:password> + </p:panelGrid> + <p:panel styleClass="btn"> + <p:commandButton value="修改" actionListener="#{userMngController.updatePasswordAction}" + process="@form"> + <p:confirm header="确认" message="确认操作?"></p:confirm> + </p:commandButton> + </p:panel> + </h:form> + </p:dialog> + <script> + // console.log($('#northForm\\:ischange').val()) + // if($('#northForm\\:ischange').val() == 0){ + // $("#changePassword").hide(); + // }else { + // $("#changePassword").show(); + // } + </script> </ui:define> <ui:define name="west"> -- Gitblit v1.9.2