请选择 进入手机版 | 继续访问电脑版

30分钟学会如何使用Shiro

[复制链接]
发表于 2018-12-21 13:46:02 |显示全部楼层
   
    作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是

JavaEE。

    那么,我们今天的学习案例就是在JavaEE场景下的用户登录实例。
   

     根据Shiro的设计思路,用户与角色之前的关系为多对多,角色与权限之间的关系也是多对多。在数据库中需要因此建立5张表,分别是用户表(存储用户名,密码,盐等)、角色表(角色名称,相关描述等)、权限表(权限名称,相关描述等)、用户-角色对应中间表(以用户ID和角色ID作为联合主键)、角色-权限对应中间表(以角色ID和权限ID作为联合主键)。具体dao与service的实现本文不提供。总之结论就是,Shiro需要根据用户名和密码首先判断登录的用户是否合法,然后再对合法用户授权。而这个过程就是Realm的实现过程


    前端代码:
   
       <input type="text">
       <input type="text" id="password" name="password">
     
    后端测试用例:

    @test
    public loginTest(){
   
      //1、获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager
      Factory<org.apache.shiro.mgt.SecurityManager> factory =new IniSecurityManagerFactory("classpath:shiro.ini");
     //2、得到SecurityManager实例 并绑定给SecurityUtils
  
   }

数据库设计



Shiro的配置






Shiro获取用户权限


  第一步:我们使用用户的登陆信息作为token令牌。
  UsernamePasswordToken token = new UsernamePasswordToken(username, password);


获取用户的角色和权限信息


   





原文地址:http://xuejava.org/thread-337-1-1.html
Shiro.sojson.com/shiro
https://www.cnblogs.com/learnhow/p/5694876.html
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|沙漏笔记

GMT+8, 2019-10-24 11:07 , Processed in 0.110572 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部