• 关于shiro权限管理的一些总结


      项目中最近开发用到了shiro,你看了可能会解决刚接触这块知识不清楚如何下手 。shiro作为一款轻量级的权限管理框架,在项目中主要想管理用户的登陆之后的页面访问,按钮,数据的显示。主要借用了shiro自己的页面权限标签。

    当用户登录时-》先经过自己的一些过滤器 ,首先拦截登陆url在controller层  :  

    spring-shiro.xml配置如下:

    下面是对应的登陆验证入口:

      

    /**
         * 登录页
         */
        @RequestMapping("/login")
        public String login() {
         String msg="login";
         Subject subject = SecurityUtils.getSubject();
         if (subject.isAuthenticated()) {
          msg="redirect:/welcome";
         }
            return msg;
        }

    ------------

    逻辑介绍:subject.isAuthenticated() 判断用户是否通过验证  isAuthenticated() 获得用户信息封装成token 经过继承 AuthorizingRealm 实现两个方法 为当前登录的Subject授予角色和权限doGetAuthorizationInfo()

    验证当前登录的Subject(doGetAuthenticationInfo)

      经过 doGetAuthenticationInfo 方法 查询数据库判断token 成功或失败,成功则进入下一个过滤器  继承 FormAuthenticationFilter  我这里主要实现了 executeLogin() onLoginSuccess()  onLoginFailure()doCaptchaValidate() 四个方法 

        (1)onLoginSuccess()方法则是验证通过 则执行  msg="redirect:/welcome"; 跳转到欢迎界面,

        (2)onLoginFailure()方法则是验证不通过 执行  msg="login"; 跳转到登陆页面。

        (3) executeLogin() doCaptchaValidate()这两个方法是页面验证码如果用户信息验证三次失败之后,进入验证码验证。防止恶意攻击。

      接下来则是用户信息验证通过之后进入doGetAuthorizationInfo()方法进行用户角色权限的缓存,缓存用户页面权限标签。决定用户在页面看到的内容。

    至于其他的关于shiro与spring的配置文件大同小异。具体的项目需要具体设置。总的来说shiro对于用户权限的管理还是挺不错的,上手较快。

  • 相关阅读:
    2016/07/05 配置虚拟域名 三部曲
    sublime下Docblocker插件自定义配置
    掌握Thinkphp3.2.0----标签库
    掌握Thinkphp3.2.0----内置标签
    掌握Thinkphp3.2.0----模版基础
    掌握Thinkphp3.2.0----视图
    掌握Thinkphp3.2.0----自动完成
    掌握Thinkphp3.2.0----自动验证
    掌握Thinkphp3.2.0----CURD
    掌握Thinkphp3.2.0----连贯操作
  • 原文地址:https://www.cnblogs.com/baimh/p/6928292.html
Copyright © 2020-2023  润新知