• 在web中使用shiro(会话管理,登出,shiro标签库的使用)


    在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤
    器专门为我们处理登出请求:

    一.shiro会话管理器

    shiro中也提供了类似于web中的session的机制

    /**
    * 跳转到系统管理的主界面
    * @return
    */
    @RequestMapping("/index")
    public String index(Model model){
    //可以通过Subject获取shiro会话中的用户身份对象
    Users user = (Users)SecurityUtils.getSubject().getPrincipal();
    List<Module> oneModules = userService.queryUsersModules(user);
    model.addAttribute("oneModules",oneModules);
    return "index";
    }
    /**
    * 用户登录的请求
    * @param user
    * @return
    */
    @RequestMapping("/login")
    public String login(Users user, Model model, HttpSession session){
    //获取用户的主体对象就可以了
    Subject subject = SecurityUtils.getSubject();
    //封装用户名和密码的认证信息对象
    UsernamePasswordToken upt = new UsernamePasswordToken(user.getUsername(),user.getPassword());
    //进行登录认证
    try {
    subject.login(upt);
    }catch (Exception e){
    e.printStackTrace();
    model.addAttribute("error","用户名或者密码错误");
    return "login";
    }
    return "redirect:/user/index.do";
    }
    tomcat的session可以控制超时时间,Shiro的session也可以控制。如果需要控制类似于超时时间这些Session的属性,就需要在shiro的主配置文件中配置SessionManager对象了.

    注意:对index.do请求不拦截

    二.登出

    首先需要在用户登录后的主界面写一个登出的链接
    然后在控制器中实现登出的方法,注意在此方法中不用写任何逻辑:
    在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤器专门为我们处理登出请求:

    三.shiro标签库的使用

    shiro为我们提供了一些简单的标签可以在jsp中使用,可以用来控制根据用户权限做一些操作使用标签库,首先要导入shiro的标签库:

     tologin.do  跳转到登陆界面
    /**
         * 跳转到登录界面
         * @return
         */
        @RequestMapping("tologin")
        public String tologin(){
            return "login";
        }
  • 相关阅读:
    远程监控基础知识和故障排除
    感慨颇多
    物联网操作系统Hello China移植mile stone之一:移植基础版本V1.76发布
    iOS5系统API和5个开源库的JSON解析速度测试
    (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0)
    [工具]Mac平台开发几个网络抓包工具(sniffer)
    [工具]Mac下非常好用的快捷终端Dterm
    【IOS】在SDK中打开其他接入应用的解决方案
    [开源]在iOS上实现Android风格的控件Toast
    [技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档
  • 原文地址:https://www.cnblogs.com/duguangming/p/11047375.html
Copyright © 2020-2023  润新知