(二)shiro学习(登录权限管理例子)MybatisPlus(访问数据库)+Shiro(权限管理)+Themleaf(前端模板)+Mysql

技术路线:MybatisPlus(访问数据库)+Shiro(权限管理)+Themleaf(前端模板)+Mysql

学习视频:bilibili.com/video/BV16C4y187S9?from=search&seid=13525714923258801405

项目资料:链接:https://pan.baidu.com/s/1yUWMwBNa1KOY3WRHcldyAg 提取码:dnlj

1 登录逻辑

如图,用户把信息传递给后端,如果正确  返回JWT(java web tocken),它相当于一个用户身份凭证,用户拿到这个JWT后就可以用它访问后端的一些API

 

2shiro介绍

shiro 是一个主流java安全框架,不依赖容器,可运行在javaSE,javaEE,可用于执行身份、授权、密码学和会话的管理。

 

2.1 从应用程序外部看shiro

Subject:应用代码直接交互得对象是subject 即 Shiro 的对外API核心就是Subject

             与Subject的所有交互都会委托给SecurityManager 

SecurityManager:安全管理器,所有与安全有关的都会与SecurityManager交互,他管理着所有的Subject 是Shiro的核心,相当于

              SpringMVC的DispatherServlet角色

Realm:Shiro从Realm获取安全数据,如果SecurityManager 验证用户信息,它需要从Realm获取相应的信息来验证。可以把                       Realm看成是 Database

2.2shiro核心组件

用户、角色、权限     给用户赋予角色  给角色赋予权限

1 UsernamePasswordToken   Shiro用来封装用户的登录信息,使用该信息来创建令牌

2SecurityManager Shiro 的核心部分,负责安全和授权

3Subject   Shiro的一个抽象概念

4Realm    开发者自定义的模块,验证和授权的逻辑在Realm中

5AutheticationIfo  用户的角色信息集合,认证时使用

6AuthorizationInfo  用户的权限信息,授权时使用

7DefaultWebSecurityManager  安全管理器,开发者自定义的Realm需要注入到DefaultWebSecurityManager进行管理才能生效

8ShiroFilterFactoryBean 过滤器工厂

Shiro 的基本运行机制是开发者定制规则,Shiro去执行,具体的执行操作由ShiroFilterFactorBean创建的一个个Filter对象来完成

授权和认证规则

认证过滤器:

    anon:无需认证。

    authc:必须认证

    authcBasic:需要通过HTTPBasic认证

    user:不一定通过认证,只要被Shiro记录即可,比如常见的记住密码

授权过滤器:

    perms:必须拥有某个权限才能访问

    role:必须拥有某个角色才能访问

    port:请求的端口必须是指定值才可以

    rest:请求必须基于RESTful  POST  PUT GET DELETE

    ssl:必须是安全的URL请求。HTTPS协议

 

2.3Shiro 实现登录认证

技术路线:MybatisPlus(访问数据库)+Shiro(权限管理)+Themleaf(前端模板)+Mysql

1 建立SpringBoot工程 ,选择下面几个依赖

 

2 授权和认证设计

 

创建3个页面   main.html、manage.html、administator.html

访问权限如下:

    1  必须登录才能访问  main.html

    2  当前用户必须拥有  manage授权才能访问  manage.html

    3  当前用户必须拥有  administator角色才能访问

3建立数据库

4SpringBoot配置依赖

5配置yml文件

4总结

项目整体运行流程如下

1一开始我们需要写数据库对应的实体类,操作实现了MybatisPlus对数据库的操作

2根据我们的权限描述  写ShiroConfig配置文件 其中包括授权、验证、登录页面、非登录也买你

3Service 中实际上知识数据库的查询操作  

4配置自定义的过滤器  AccountRealm  其中包括验证和授权

5编写Controller 页面信息  包括检查验证信息是否正确  这里由如图两个异常  捕获并处理他们就行了

项目运行流程,用户输入用户名密码后,点击登录按钮,就会把用户名和密码封装成一个Token,并进行验证,进入doGetAuthenticationInfo,它里面调用Service中的方法查询数据库,然后返回到开始出,然后跳转到该有的也买你。如果进入了登录系统,点击其他页面,会进入doGetAuthorizationInfo中进行授权验证,然后返回指定的url  然后跳转对应的页面,实现了权限管理的登录操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值