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