Commit 983ece4e by fsn

新增修改密码功能

parent 921db60d
......@@ -33,6 +33,8 @@ public enum BizExceptionEnum {
NO_THIS_USER(400,"没有此用户"),
USER_NOT_EXISTED(400, "没有此用户"),
ACCOUNT_FREEZED(401, "账号被冻结"),
OLD_PWD_NOT_RIGHT(402, "原密码不正确"),
TWO_PWD_NOT_MATCH(405, "两次输入密码不一致"),
/**
* 错误的请求
......
......@@ -15,8 +15,6 @@
*/
package com.stylefeng.guns.core.shiro;
import java.util.Random;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.crypto.hash.SimpleHash;
......@@ -24,6 +22,8 @@ import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.ByteSource;
import java.util.Random;
/**
* shiro工具类
*
......@@ -36,18 +36,18 @@ public class ShiroKit {
/**
* 加盐参数
*/
final static String hashAlgorithmName = "MD5";
public final static String hashAlgorithmName = "MD5";
/**
* 循环次数
*/
final static int hashIterations = 1024;
public final static int hashIterations = 1024;
/**
* shiro密码加密工具类
*
* @param 密码
* @param 密码盐
* @param credentials 密码
* @param saltSource 密码盐
* @return
*/
public static String md5(String credentials, String saltSource) {
......
......@@ -114,6 +114,36 @@ public class UserMgrController extends BaseController {
}
/**
* 跳转到修改密码界面
*/
@RequestMapping("/user_chpwd")
public String chPwd(){
return PREFIX + "user_chpwd.html";
}
/**
* 修改当前用户的密码
*/
@RequestMapping("/changePwd")
@ResponseBody
public Object changePwd(@RequestParam String oldPwd,@RequestParam String newPwd,@RequestParam String rePwd){
if(!newPwd.equals(rePwd)){
throw new BussinessException(BizExceptionEnum.TWO_PWD_NOT_MATCH);
}
Integer userId = ShiroKit.getUser().getId();
User user = userMapper.selectById(userId);
String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt());
if(user.getPassword().equals(oldMd5)){
String newMd5 = ShiroKit.md5(newPwd,user.getSalt());
user.setPassword(newMd5);
user.updateById();
return SUCCESS_TIP;
}else{
throw new BussinessException(BizExceptionEnum.OLD_PWD_NOT_RIGHT);
}
}
/**
* 查询管理员列表
*/
@RequestMapping("/list")
......
......@@ -14,6 +14,7 @@
</a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a class="J_menuItem" href="${ctxPath}/mgr/user_info/${shiro.getUser().id}">个人资料</a></li>
<li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">修改密码</a></li>
<li class="divider"></li>
<li><a href="${ctxPath}/logout">安全退出</a>
</li>
......
@layout("/common/_container.html"){
<div class="col-sm-4 col-sm-offset-4">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>修改密码</h5>
</div>
<div class="ibox-content">
<div class="row row-lg">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content" style="border:none !important; ">
<div class="form-horizontal">
<div class="row">
<div class="col-sm-12">
<#input id="oldPwd" name="原密码" underline="true" type="password"/>
<#input id="newPwd" name="新密码" underline="true" type="password"/>
<#input id="rePwd" name="新密码验证" type="password"/>
</div>
</div>
<div class="row btn-group-m-t">
<div class="col-sm-10">
<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.chPwd()"/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="${ctxPath}/static/modular/system/user/user_info.js"></script>
@}
......@@ -159,6 +159,22 @@ UserInfoDlg.editSubmit = function() {
ajax.start();
};
/**
* 修改密码
*/
UserInfoDlg.chPwd = function(){
var ajax = new $ax(Feng.ctxPath + "/mgr/changePwd", function(data){
Feng.success("修改成功!");
},function(data){
Feng.error("修改失败!" + data.responseJSON.message + "!");
});
ajax.set("oldPwd");
ajax.set("newPwd");
ajax.set("rePwd");
ajax.start();
};
function onBodyDown(event) {
if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(
event.target).parents("#menuContent").length > 0)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment