Shiro

Shiro源码分析系列:01.shiro初始化

2019-04-18  本文已影响0人  城南码农

关于shiro的架构和组件,可以参考开涛跟我学Shiro系列

Shiro初始化

  1. 初始化DelegatingFilterProxy:
    @Bean
    public FilterRegistrationBean getShiroFilter() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        // 创建FactoryBean的代理对象
        DelegatingFilterProxy delegatingFilterProxy = new DelegatingFilterProxy("shiroFilter");
        delegatingFilterProxy.setTargetFilterLifecycle(true);
        registrationBean.setFilter(delegatingFilterProxy);
        registrationBean.setEnabled(true);
        registrationBean.setOrder(2);
        registrationBean.addUrlPatterns("/*");
        registrationBean.setDispatcherTypes(DispatcherType.REQUEST);
        return registrationBean;
    }
  1. 初始化ShiroFilterFactoryBean,ShiroFilterFactoryBean实现了Spring的FactoryBean,默认会调用getObject(),实际调用createInstance(),实际返回一个SpringShiroFilter对象:


    securityManage.jpg
    chainResolver.jpg

    至此,初始化过程完成,主要构造了SpringShiroFilter的对象。

接管request请求

主要搞清楚一件事,Shiro怎么从Spring那里接管到请求?先看一张流程图:


shiro filter request.jpg
上一篇下一篇

猜你喜欢

热点阅读