Commit 948bc181 by fengshuonan

增加验证码功能

parent b8d54a5b
...@@ -15,13 +15,17 @@ ...@@ -15,13 +15,17 @@
*/ */
package cn.stylefeng.guns.sys.modular.system.controller; package cn.stylefeng.guns.sys.modular.system.controller;
import cn.stylefeng.guns.base.pojo.node.MenuNode;
import cn.stylefeng.guns.base.shiro.ShiroUser; import cn.stylefeng.guns.base.shiro.ShiroUser;
import cn.stylefeng.guns.sys.core.exception.InvalidKaptchaException;
import cn.stylefeng.guns.sys.core.log.LogManager; import cn.stylefeng.guns.sys.core.log.LogManager;
import cn.stylefeng.guns.base.pojo.node.MenuNode;
import cn.stylefeng.guns.sys.core.log.factory.LogTaskFactory; import cn.stylefeng.guns.sys.core.log.factory.LogTaskFactory;
import cn.stylefeng.guns.sys.core.shiro.ShiroKit; import cn.stylefeng.guns.sys.core.shiro.ShiroKit;
import cn.stylefeng.guns.sys.core.util.KaptchaUtil;
import cn.stylefeng.guns.sys.modular.system.service.UserService; import cn.stylefeng.guns.sys.modular.system.service.UserService;
import cn.stylefeng.roses.core.base.controller.BaseController; import cn.stylefeng.roses.core.base.controller.BaseController;
import cn.stylefeng.roses.core.util.ToolUtil;
import com.google.code.kaptcha.Constants;
import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -99,6 +103,15 @@ public class LoginController extends BaseController { ...@@ -99,6 +103,15 @@ public class LoginController extends BaseController {
String password = super.getPara("password").trim(); String password = super.getPara("password").trim();
String remember = super.getPara("remember"); String remember = super.getPara("remember");
//验证验证码是否正确
if (KaptchaUtil.getKaptchaOnOff()) {
String kaptcha = super.getPara("kaptcha").trim();
String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
throw new InvalidKaptchaException();
}
}
Subject currentUser = ShiroKit.getSubject(); Subject currentUser = ShiroKit.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray());
......
...@@ -71,20 +71,21 @@ ...@@ -71,20 +71,21 @@
<input type="radio" name="remember" value="off" title="否" checked=""> <input type="radio" name="remember" value="off" title="否" checked="">
</div> </div>
</div> </div>
<!--<div class="layui-form-item">--> @if(kaptcha.getKaptchaOnOff() == true){
<!--<label class="layui-form-label"><i class="layui-icon layui-icon-vercode"></i></label>--> <div class="layui-form-item">
<!--<div class="layui-input-block">--> <label class="layui-form-label">验证码</label>
<!--<div class="layui-row inline-block">--> <div class="layui-input-block">
<!--<div class="layui-col-xs7">--> <div class="layui-row inline-block">
<!--<input name="code" type="text" lay-verify="required" placeholder="验证码"--> <div class="layui-col-xs7">
<!--class="layui-input">--> <input name="kaptcha" type="text" lay-verify="required" placeholder="验证码" class="layui-input">
<!--</div>--> </div>
<!--<div class="layui-col-xs5" style="padding-left: 10px;">--> <div class="layui-col-xs5" style="padding-left: 10px;">
<!--<img class="login-captcha" src="https://www.oschina.net/action/user/captcha">--> <img class="login-captcha" src="${ctxPath}/kaptcha">
<!--</div>--> </div>
<!--</div>--> </div>
<!--</div>--> </div>
<!--</div>--> </div>
@}
<div class="layui-form-item"> <div class="layui-form-item">
<a href="javascript:;" class="layui-link">帐号注册</a> <a href="javascript:;" class="layui-link">帐号注册</a>
<a href="javascript:;" class="layui-link pull-right">忘记密码?</a> <a href="javascript:;" class="layui-link pull-right">忘记密码?</a>
...@@ -133,9 +134,9 @@ ...@@ -133,9 +134,9 @@
}); });
// 图形验证码 // 图形验证码
// $('.login-captcha').click(function () { $('.login-captcha').click(function () {
// this.src = this.src + '?t=' + (new Date).getTime(); this.src = this.src + '?t=' + (new Date).getTime();
// }); });
var errorMsg = "${tips!}"; var errorMsg = "${tips!}";
if (errorMsg) { if (errorMsg) {
......
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