• shiro实现自定义Reaml


    今天给大家分享Reaml自定义具体操作流程

    1.1 导入依赖的包

    导入shiro需要的依赖包

    1. <shiro-version>1.2.5shiro-version>
    2. <dependency>    
    3.   <groupId>org.apache.shirogroupId>    
    4.   <artifactId>shiro-coreartifactId>    
    5.   <version>${shiro-version}version>
    6. dependency>
    7.   <dependency>    
    8.   <groupId>org.apache.shirogroupId>    
    9.   <artifactId>shiro-webartifactId>    
    10.   <version>${shiro-version}version>
    11.   dependency>
    12. <dependency>    
    13.   <groupId>org.apache.shirogroupId>    
    14.   <artifactId>shiro-springartifactId>    
    15.   <version>${shiro-version}version>
    16. dependency>

    1.2 web.xml配置

    配置shiroFilter监听器

    1. <filter>    
    2.   <filter-name>shiroFilterfilter-name>    
    3.   <filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
    4. filter>
    5. <filter-mapping>    
    6.   <filter-name>shiroFilterfilter-name>    
    7.   <url-pattern>/*url-pattern>
    8. filter-mapping>

    1.3自定义Reaml实现流程

    如果需要开发自定义Reaml,可以继承AuthorizingReaml实现doGetAuthorizationInfo方法与doGetAuthenticationInfo方法

    自定义Realm做为组件放入spring容器, 然后将组件放入securityManager安全管理器,安全管理器最后将权限控制给shiro容器监听器。

    shiro容器监听器,找到安全管理器,安全管理器找自定义Reaml,自定义Reaml继承AuthorizingRealm调用方法获取用户信息

    自定义UserReaml类:

    1.4用户登陆

    效果展示

    获取subject管理员权限,然后调用登陆方法,找到自定义Reaml类UserReaml上的方法,判断账号密码是否与数据库配对,如果配对,就跳转登陆页面。不配对直接阻止。

    UserReaml类

    通过令牌Token,获取并保存登陆名,执行登陆Service方法,调用认证登陆操作处理结果给令牌Token

    锁定用户

    User实体定义一个锁定用户号

     

  • 相关阅读:
    HTML做一个节日页面【六一儿童节】纯HTML代码
    layuiAdmin侧边栏菜单刷新保持当前页面
    选择最适合你的框架和语言,打造出色的Windows界面程序
    echarts 图片导入到 word pdf
    中国石油大学(北京)-《油藏工程》第一阶段在线作业
    vue下载excel表格
    一次glide内存泄漏排查分析
    神经网络-卷积神经网络案例详解
    项目控制有哪些关键?又何时实施项目控制?
    基于SSM的Web网页聊天室系统
  • 原文地址:https://blog.csdn.net/Bugxiu_fu/article/details/126769532