pwdrest_u.jsp 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
  2. <%@include file="/jsp/framework/head.jsp" %>
  3. <%@ page import="cn.sinobest.framework.comm.iface.IOperator" %>
  4. <%@ page import="cn.sinobest.framework.util.DTOUtil"%>
  5. <%@ page import="cn.sinobest.framework.util.ConfUtil,cn.sinobest.framework.comm.Environment"%>
  6. <%@page import="cn.sinobest.framework.util.HTMLEncode"%>
  7. <%
  8. IOperator Operator = null;
  9. Object obj = request.getSession().getAttribute("OPERATOR");
  10. String OperName="";
  11. String LoginID ="";
  12. String ErrorInfo = "";
  13. String returnRUL = "";
  14. String des = String.valueOf(System.currentTimeMillis());
  15. des = des.substring(des.length()-7);
  16. String UNSAFE_VALIDATEFORM = ConfUtil.getParam("UNSAFE_VALIDATEFORM","");
  17. request.getSession(true).setAttribute("des_key",des+"hnisi");//密钥
  18. returnRUL = DTOUtil.getValue("_rtnURL")+"";
  19. if(obj != null){
  20. Operator = (IOperator)obj;
  21. LoginID = Operator.getLoginID();
  22. OperName = Operator.getOperName();
  23. }
  24. //单击修改密码按钮
  25. if(returnRUL.equals("")){
  26. returnRUL= request.getContextPath()+"/jsp/framework/mainframe.jsp";
  27. }
  28. if(request.getAttribute("ERRORINFO")!=null){
  29. ErrorInfo = request.getAttribute("ERRORINFO").toString()+"";
  30. returnRUL = request.getAttribute("LOGINURL").toString()+"";
  31. }
  32. String jsMin = "";
  33. if (Environment.getAppProductMode()) {
  34. jsMin = "-min";
  35. }
  36. %>
  37. <html>
  38. <head>
  39. <title>密码修改</title>
  40. <meta http-equiv="X-UA-Compatible" content="<%=Environment.XUACompatible %>" />
  41. <link href="${ctx}/js/comm/ui/qtip/jquery.qtip<%=jsMin%>.css" rel="stylesheet" type="text/css">
  42. <% if ("-min".equals(jsMin)) { %>
  43. <link href="${ctx}/themes/default/fw-all-default<%=jsMin%>.css" rel="stylesheet" type="text/css">
  44. <% } else { %>
  45. <link href="${ctx}/themes/default/default.css" rel="stylesheet" type="text/css">
  46. <% } %>
  47. <!--[if IE 6]>
  48. <link href="${ctx}/themes/default/ie6.css" rel="stylesheet" type="text/css">
  49. <![endif]-->
  50. <style>
  51. .box{
  52. border: #B5B8C8 1px solid;
  53. color: #000000;
  54. width:100%;
  55. height:21px;
  56. background-color:white;
  57. font-size:14px;
  58. font-family:微软雅黑,宋体;
  59. }
  60. </style>
  61. <script language="javascript">
  62. var fwUnsafeValidateFormTokens = "<%=UNSAFE_VALIDATEFORM%>".split("|");
  63. function isNotEmpty(){
  64. var obj = document.aform.newpwd;
  65. if(aform.oldpwd.value==""){
  66. FWvalidateTip(aform.oldpwd,"原密码不能为空!");
  67. aform.oldpwd.focus();
  68. return false;
  69. }
  70. if(aform.oldpwd.value == obj.value){
  71. FWvalidateTip(obj,"新密码不能等于旧密码!");
  72. obj.focus();
  73. return false;
  74. }
  75. if(obj.value == "" ){
  76. FWvalidateTip(obj,"新密码不能为空!");
  77. obj.focus();
  78. return false;
  79. }
  80. var temp = obj.value;
  81. if(temp.length < 8 ){
  82. FWvalidateTip(obj,"新密码长度不能小于8位!");
  83. obj.focus();
  84. return false;
  85. }
  86. var cp=checkPass(temp);
  87. if(cp<3){
  88. FWvalidateTip(obj,"新密码必须包含数字、字符和特殊字符!");
  89. obj.focus();
  90. return false;
  91. }
  92. var temp2=obj.value.toLowerCase();
  93. for(var unsafei=0;unsafei<fwUnsafeValidateFormTokens.length;unsafei++){
  94. var lowerUnsafe = fwUnsafeValidateFormTokens[unsafei].toLowerCase().replace(" ","");
  95. if(-1 != temp2.indexOf(lowerUnsafe)){
  96. FWvalidateTip(obj,"新密码包含危险字符!");
  97. obj.focus();
  98. return false;
  99. }
  100. }
  101. var obj1=document.aform.newpwd2;
  102. if(obj.value != obj1.value){
  103. FWvalidateTip(obj1,"确认密码不匹配!");
  104. obj1.focus();
  105. return false;
  106. }
  107. return true;
  108. }
  109. function checkPass(pass){
  110. var ls = 0;
  111. if(pass.match(/([0-9])+/)){
  112. ls++;
  113. }
  114. if(pass.match(/([a-zA-Z])+/)){
  115. ls++;
  116. }
  117. if(pass.match(/[^a-zA-Z0-9]+/)){
  118. ls++;
  119. }
  120. return ls;
  121. }
  122. /**
  123. * 验证提示框
  124. * e.g:
  125. * FWvalidateTip(document.wfForm.XM,"姓名输入不合法");
  126. *
  127. * FWvalidateTip("form[name='wfForm'] input[name='XM']","姓名输入不合法!");
  128. *
  129. * @param findObj jQuery查找串或对象
  130. * @param msg 提示信息
  131. */
  132. function FWvalidateTip(findObj,msg) {
  133. //延迟2秒
  134. var defaults = {content: {text: msg},
  135. hide: { delay:2000,
  136. event: false,
  137. inactive: 3000},
  138. position: {
  139. my: 'center left', // 默认显示在右侧
  140. at: 'center right'
  141. }
  142. };
  143. var $findObj = $(findObj);
  144. //距离浏览器窗口右边的距离
  145. var distance = document.body.clientWidth - $findObj.get(0).getBoundingClientRect().right;
  146. if(distance <= 200){//如果距离浏览器右边的距离少于200px,则提示信息在下方显示
  147. defaults.position = {
  148. my: 'top center',
  149. at: 'bottom center'
  150. };
  151. if($findObj.hasClass("fwcombox-arrow")){
  152. $findObj.prev().qtip(defaults).qtip("show");
  153. }else{
  154. $findObj.qtip(defaults).qtip("show");
  155. }
  156. }else{
  157. $findObj.qtip(defaults).qtip("show");
  158. }
  159. }
  160. </script>
  161. </head>
  162. <body>
  163. <table width="100%" height="100%" >
  164. <tr height="5%"><td width="100%"></td></tr>
  165. <tr><td align="center" width="100%">
  166. <form name="aform" method=post action="<%=request.getContextPath()%>/framework/security/pwdrest!pwdrest.do" >
  167. <input type="hidden" name="_rtnURL" value="<%=request.getContextPath()%>/framework/security/pwdrest.do" />
  168. <input type="hidden" name="LoginURL" value="<%=returnRUL%>" />
  169. <input type="hidden" name="_1_" value="<%=des%>"></input>
  170. <input type="hidden" name="oldpwd_t"></input>
  171. <input type="hidden" name="newpwd_t"></input>
  172. <fieldset class="fieldset" align="center" style="cursor:default;width:35%" >
  173. <legend class="legend" style="cursor:hand;" >
  174. <span>
  175. &nbsp;密码修改 &nbsp;
  176. </span>
  177. </legend>
  178. <div id="div_pwdrest" class="tablediv">
  179. <TABLE align=center align="center" class="dataTable" cellpadding="0" cellspacing="0" border=0 width=95%>
  180. <TBODY>
  181. <TR>
  182. <TD vAlign="top" align=left class="tdprompt" width=25%>登录用户名</TD>
  183. <TD vAlign="middle" align=left class="tdinput" width=50%><input type=text class=textbox readonly="true" value="<%=LoginID%>"></input></TD>
  184. <TD width=25%></TD>
  185. </TR>
  186. <TR>
  187. <TD vAlign="top" align=left class="tdprompt" >姓名</TD>
  188. <TD vAlign="middle" align=left class="tdinput" width=35%><input type=text class=textbox readonly="true" value="<%=OperName%>"></input></TD>
  189. <TD></TD>
  190. </TR>
  191. <TR>
  192. <TD vAlign="top" align=left class="tdprompt" align=left>原密码</TD>
  193. <TD vAlign="top" class="tdinput" width=35%><input type="password" autocomplete="off" class="textbox" maxlength="15" size="21" id="oldpwd" name="oldpwd" value="" tabindex="1"></TD>
  194. <TD></TD>
  195. </TR>
  196. <TR>
  197. <TD vAlign="top" align=left class="tdprompt" align=left>新密码</TD>
  198. <TD vAlign="top" class="tdinput" width=35%><input type="password" autocomplete="off" class="textbox" maxlength="15" size="21" id="newpwd" name="newpwd" value="" tabindex="2" onBlur="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')"></TD>
  199. <TD></TD>
  200. </TR>
  201. <TR>
  202. <TD vAlign="top" align=left class="tdprompt" align=left>确认密码</TD>
  203. <TD vAlign="top" class="tdinput" width=35%><input type="password" autocomplete="off" class="box" maxlength="15" size="21" id="newpwd2" name="newpwd2" value="" onKeyUp="fKeyPress(this)" tabindex=3 onBlur="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')"></TD>
  204. <TD></TD>
  205. </TR>
  206. </TBODY>
  207. </TABLE>
  208. <p align="center">
  209. <hnisi:btn onclick="doSubmit();" keycomb="ctrl+s" value="保存(S)"></hnisi:btn>
  210. <hnisi:btn onclick="doBack();" keycomb="ctrl+q" value="返回(Q)"></hnisi:btn>
  211. </p>
  212. </div>
  213. </fieldset>
  214. </form>
  215. </td></tr>
  216. <tr height="30%"><td></td></tr>
  217. </table>
  218. </body>
  219. <script type="text/javascript">
  220. <%if(!ErrorInfo.equals("")){%>
  221. FWvalidateTip(aform.oldpwd,"<%=ErrorInfo%>");
  222. <%}%>
  223. aform.oldpwd.focus();
  224. function doBack(){
  225. window.location.href = aform.LoginURL.value;
  226. return true;
  227. }
  228. function _1_(){
  229. var oldpwd = aform.oldpwd.value;
  230. var newpwd = aform.newpwd.value;
  231. var _1 = aform._1_.value;
  232. var oldpwd_t = stringToHex(encrypt(_1,oldpwd));
  233. var newpwd_t = stringToHex(encrypt(_1,newpwd));
  234. aform.oldpwd_t.value = oldpwd_t;
  235. aform.newpwd_t.value = newpwd_t;
  236. return true;
  237. }
  238. function doSubmit(){
  239. if(!isNotEmpty()){
  240. return;
  241. }
  242. _1_();
  243. aform._1_.value='';
  244. aform.oldpwd.value='';
  245. aform.newpwd.value='';
  246. aform.newpwd2.value='';
  247. aform.submit();
  248. return true;
  249. }
  250. function fKeyPress(obj){
  251. keycode=window.event.keyCode;
  252. if (keycode==0xD){
  253. doSubmit();
  254. }
  255. return true;
  256. }
  257. </script>
  258. </html>