Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,大部分情况下需要从系统的数据库中读取用户信息,所以需要自定义realm。
1,Realm接口
最基础的是Realm接口,CachingRealm负责缓存处理,AuthenticationRealm负责认证,AuthorizingRealm负责授权,通常自定义的realm继承AuthorizingRealm
2,数据表设计
permission 菜单和权限表
role 角色表
role_permission 角色和权限的关系表
user 用户表
user_role用户和角色之间的关系表
3,实现步骤
1,创建shiro_realm的maven项目
web.xml文件过滤器配置:
<filter>
<filter-name>shiroFilterfilter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
filter-class>
<init-param>
<param-name>targetFilterLifecycleparam-name>
<param-value>trueparam-value>
init-param>
<init-param>
<param-name>targetBeanNameparam-name>
<param-value>shiroFilterparam-value>
init-param>
filter>
<filter-mapping>
<filter-name>shiroFilterfilter-name>
<url-pattern>* = authc -->