shiro实现自定义Reaml

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

1.1 导入依赖的包

导入shiro需要的依赖包

<shiro-version>1.2.5</shiro-version>
​
<dependency>    
    <groupId>org.apache.shiro</groupId>    
    <artifactId>shiro-core</artifactId>    
    <version>${shiro-version}</version>
</dependency>
    <dependency>    
    <groupId>org.apache.shiro</groupId>    
    <artifactId>shiro-web</artifactId>    
    <version>${shiro-version}</version>
    </dependency>
<dependency>    
    <groupId>org.apache.shiro</groupId>    
    <artifactId>shiro-spring</artifactId>    
    <version>${shiro-version}</version>
</dependency>

1.2 web.xml配置

配置shiroFilter监听器

<!-- shiro -->
<filter>    
    <filter-name>shiroFilter</filter-name>    
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>    
    <filter-name>shiroFilter</filter-name>    
    <url-pattern>/*</url-pattern>
</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实体定义一个锁定用户号

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值