Shiro 使用时可以连接数据库,也可以不连接数据库
如果不连接数据库,可以在shiro.ini中配置静态数据
Shrio.ini文件的组成部分
Shiro使用的是.ini配置文件,也查键值对,可以进行分类配置,以;或#开头表示注释
-
[main] :定义全局变量
(1)内置securityManager对象.
(2)操作内置对象时,在[main]里面写东西
[main] securityManager.属性 = 值 myobj = com.tuojun.lei securityManager.对象属性 = $myobj
-
[users] :定义用户名和密码
[users] # 定义用户名为zhangsan 密码为zs zhangsan = zs # 定义用户名lisi密码为lisi同时具有role1和role2两个角色 lisi = lisi, role1, role2
-
[roles]: 定义角色
[roles] role1 = 权限名1, 权限名2 role2 = 权限3, 权限4
-
[urls] : 定义哪些内置urls生效.在web应用时使用
[urls] #url地址 = 内置filter或自定义filter # 访问时出现/login的url必须去认证.支持authc对应的Filter /login = authc # 任意的url都不需要进行认证等功能. /** = anon # 所有的内容都必须保证用户已经登录. /** = user # url abc 访问时必须保证用户具有role1和role2角色 /abc = roles[“role1,role2”]
过滤器名称 | 过滤器类 | 描述 |
---|---|---|
anon | org.apache.shiro.web.filter.authc.AnonymousFilter | 匿名过滤器 |
authc | org.apache.shiro.web.filter.authc.FormAuthenticationFilter | 如果继续操作,需要做对应的表单验证否则不能通过 |
perms | org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter | 权限过滤器 |
roles | org.apache.shiro.web.filter.authz.RolesAuthorizationFilter | 角色过滤器,判断当前用户是否指定角色 |
user | org.apache.shiro.web.filter.authc.UserFilter | 如果访问一个已知用户,比如记住我功能,走这个过滤器 |
authcBasic | org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter | 基本http验证过滤,如果不通过,跳转屋登录页面 |
logout | org.apache.shiro.web.filter.authc.LogoutFilter | 登录退出过滤器 |
其中前四种常用
shiro中 .ini文件的默认配置
# 默认的SecuritManager
securitManager = org.apache.shiro.mgt.DefaultSecurityManager
# 默认的认证器
authenticator = org.apache.shiro.authc.pam.ModularRealmAuthenticator
# 将认证器添加到securityManager中
securityManager.authenticator = $authenticator
# 默认的认证策略
authenticationStrategy = org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy
# 将认证策略添加到认证器中,相当于注入的操作,要以$开头
authenticator.authenticationStrategy = $authenticationStrategy
# 默认的Realm
iniRealm = org.apache.shiro.realm.text.IniRealm
# 将认Realm添加到securityManager中
securityManager.realms = $iniRealm
这些是文件中的默认配置,可以不用写