Spring shiro filter 的初始化
org.apache.shiro.spring.web.ShiroFilterFactoryBean#getObject > createInstance
引出:
1. 接口 filterChainManager 管理所有的fileter和过滤器链
默认实现 DefaultFilterChainManager
默认过滤器设置
org.apache.shiro.web.filter.mgt.DefaultFilter
anon(AnonymousFilter.class),
authc(FormAuthenticationFilter.class),
authcBasic(BasicHttpAuthenticationFilter.class),
logout(LogoutFilter.class),
noSessionCreation(NoSessionCreationFilter.class),
perms(PermissionsAuthorizationFilter.class),
port(PortFilter.class),
rest(HttpMethodPermissionFilter.class),
roles(RolesAuthorizationFilter.class),
ssl(SslFilter.class),
user(UserFilter.class);
2. 接口
org.apache.shiro.web.filter.mgt.FilterChainResolver
主要的实现类 也只有 PathMatchingFilterChainResolver
主要提供 决定根据访问路径 确定该请求使用那个过滤器链
3. last url
Webutil.
4. 采用httpsession 还是自定义的session 系统终默认的 DefaultWebSecurityManager
取决注入到security终的sessionManager
如果自行实现securityMananger 在WEB 环境中还需要实现webSecurityManager接口
5. shiro 的 session
在最终使用的时候 我们最终拿到的对象时 DelegatingSession , shiro 通过台代理相应的sessionManage 完成相应的session操作
你可以使用自己的session 实现 替换现有 simpleSession 实现, 同时也需要替换相应的sessionManager实现 默认获取session在类
DefaultSessionManager#retrieveSession 方法中