Apache Shiro是一款Java 安全框架,可以用于完成认证、授权、加密、会话管理、与Web集成、缓存等功能。根据官方文档,我这里列举出两种常用的配置方式,一是ini文件配置,二是spring xml文件的配置方式。
二者的配置,基本都是针对Shiro的以下几个常用组件:securityManager,cachManager,Realm,以及对应的链接拦截规则(urls)。
- shiro.ini文件配置方式
我所用的是IDEA环境,在resources目录下新建config目录,用于存放相关配置文件,这里的Shiro.ini 文件也放在下面。你也可以放在你自己的目录,只不过要在web.xml指明配置文件的路径(默认为classpath下shiro.ini文件)。
shiro.ini文件的基本内容:这里的[urls]下anon代表对应链接不需要用户登录以及权限即可访问,authc代表需要用户登录才可以访问,其他标签可查看官方文档,在之后的学习过程中,根据实例再续写。
[main]
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
myShiroRealm = com.song.shiro.realm.MyRealm
myShiroRealm.cacheManager = $cacheManager
securityManager.realm = $myShiroRealm
securityManager.rememberMeManager.cipherKey=false
shiro.loginUrl = /admin/login
shiro.successUrl = /admin/success
[urls]
/admin/login = anon
/admin/success = authc
/other/index = authc
/logout = logout
对应地,在web.xml中配置文件加载监听器及对应的Shiro拦截器配置为:
<param-name>shiroConfigLocations</param-name>
<param-value>classpath:config/shiro.ini</param-value>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
<filter-name>shiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUD