shiro结合数据库

加密数据库密码

例如:
加密工具类

package cn.itsource.aisell.util;

import org.apache.shiro.crypto.hash.SimpleHash;

public class MD5Util {

    public static String ALGORITHMNAME = "MD5";
    public static String SALT = "itsource";

    public static int HASHITERATIONS = 10;

    //对密码进行加密的方法
    public static String createMd5Str(String pwd){
        SimpleHash simpleHash = new SimpleHash(ALGORITHMNAME, pwd, SALT,HASHITERATIONS);
        return simpleHash.toString();
    }
}

新增中的密码加密

@Override
    public void save(Employee employee) {
        if(employee.getId() == null){
            //对员工设置加密之后的密码
            employee.setPassword(MD5Util.createMd5Str(employee.getPassword()));
        }
       //重新保存到数据库 新增或者修改都要调用
        super.save(employee);
    }

添加登陆页面

1.准备一个login.jsp
2.在login.jsp中准备一个form表单
3.提交登录表单,调用下面的方法去提交

function submitForm(){
            //提交表单到后台程序
            $("#loginForm").form('submit',{
                url:'/login',
                success:function(result){
                    //返回json字符串 {success:true,msg:'xxx'}
                    //$ jquery里面对象
                    result = $.parseJSON(result);
                    if(result.success){
                      //跳转主页
                        location.href = "/main";
                    }else{
                        $.messager.alert("温馨提示", result.msg, "info");
                    }
                }
            })

        }

4.在controller层处理登陆认证
取到当前主体,判断是否登陆过,如果登录过,就直接访问,如果没有认证,就进行认证

注销功能

添加按钮,然后发送请求到controller处理

<div data-options="region:'north',split:true" style="height:120px;">
        <h1 style="margin-bottom: 10px">源码时代智销系统</h1>
        <div style="text-align:right;margin-right: 10px">
             欢迎<font color="red"><shiro:principal property="username"/></font>进入
            <a href="/logout">注销</a>
        </div>
    </div>

//注销
    @RequestMapping("/logout")
    public String logout(){
        //注销
        Subject subject = SecurityUtils.getSubject();
        subject.logout();
        //跳转
        return "redirect:/login";
    }

回车登陆

在页面绑定一个键盘事件,如果检测到是Enter(回车键) 就提交表单

$(document.documentElement).on("keyup", function(event) {
            //console.debug(event.keyCode);
            //获取按键
            var keyCode = event.keyCode;
            console.debug(keyCode);
            if(keyCode===13){
                submitForm();
            }
        });

登录过期的问题

原因导致:如果我们已经注销了系统,在其他的页面里面点击操作,会出现登录页面嵌套

解决方案: 让子窗口的页面地址 赋值给顶级的窗口的地址

 if(top!=window){
            //子窗口  把当前子窗口的路径 赋值顶层窗口的路径
            top.location.href = window.location.href;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值