今天终于了解了项目中的shiro功能流程,项目中只是用到了shiro的内置的认证功能,没有做任何自己的处理,完全通过配置文件实现。项目中只用到authc(如果继续操作,需要做对应的表单验证否则不能通过)默认过滤器,使用shiro.ini配置文件,包括4项:
[main]用于配置 SecurityManager 实例[user] 用于配置用户
[role] 用于配置用户角色
[urls] 用于配置拦截的web路径
[main] authc.loginUrl = /admin/login authc.successUrl = /admin/index [users] # user 'admin' with password 'admin!?:135' and the 'admin' role admin = admin!?:135,admin [roles] # 'admin' role has all permissions, indicated by the wildcard '*' admin = *
[urls] /admin/login* = authc /admin/login/* = authc
处理流程大概是:/admin/login*路径被authc过滤器拦截,过滤器查找[users] # user 'admin' with password 'admin!?:135' and the 'admin' role admin = admin!?:135,admin中的用户名admin密码admin!?:135权限admin,如果验证成功则拥有admin权限,否则回去重新填写表单。注意,Shiro验证URL时,URL匹配成功便不再继续匹配查找。所以要注意配置文件中的URL顺序,尤其在使用通配符时