今天给大家分享Reaml自定义具体操作流程
导入shiro需要的依赖包
- <shiro-version>1.2.5shiro-version>
-
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-coreartifactId>
- <version>${shiro-version}version>
- dependency>
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-webartifactId>
- <version>${shiro-version}version>
- dependency>
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-springartifactId>
- <version>${shiro-version}version>
- dependency>
配置shiroFilter监听器
- <filter>
- <filter-name>shiroFilterfilter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxyfilter-class>
- filter>
- <filter-mapping>
- <filter-name>shiroFilterfilter-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实体定义一个锁定用户号