当前位置: 首页 > news >正文

授权与认证之jwt(五)创建ShiroConfig类

接上篇授权与认证之jwt(四)创建OAuth2 Filter类  我们要创建的Shiroconfig类,是用来把OAuth2Filter和OAuth2Realm配置到Shiro框架,这样我们辛苦搭建的Shiro+WT才算生效。

@Configuration
public class ShiroConfig {

    @Bean("securityManager")
    public SecurityManager securityManager(OAuth2Realm  oAuth2Realm) {
        DefaultSecurityManager securityManager=new  DefaultSecurityManager();;
        securityManager.setRealm(oAuth2Realm);
        securityManager.setRememberMeManager(null);
        return securityManager;
    }

    @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager,OAuth2Filter oAuth2Filter) {
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(securityManager);

        //oauth过滤
        Map<String, Filter> filters=new HashMap<>();
        filters.put("oauth2",oAuth2Filter);
        shiroFilterFactoryBean.setFilters(filters);

        Map<String,String> filterMap=new LinkedHashMap<>();
        filterMap.put("/webjars/**","anon");
        filterMap.put("/druid/**","anon");
        filterMap.put("/app/**","anon");
        filterMap.put("/sys/login/**","anon");
        filterMap.put("/swagger/**","anon");
        filterMap.put("/swagger-ui.html","anon");
        filterMap.put("/swagger-resources/**","anon");
        filterMap.put("/v2/api-docs/**","anon");
        filterMap.put("/captcha.jpg","anon");
        filterMap.put("/user/register","anon");
        filterMap.put("/user/login","anon");
        filterMap.put("/test/**","anon");
        filterMap.put("/**","oauth2");

        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterMap);

        return shiroFilterFactoryBean;
    }

    @Bean("lifecycleBeanPostProcessor")
    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
        return new  LifecycleBeanPostProcessor();
    }

    @Bean
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
        return authorizationAttributeSourceAdvisor;
    }
}

相关文章:

  • 从头开始学SpringBoot—01入门基础配置
  • [3/11]C#性能优化-实现 IDisposable 接口-每个细节都有示例代码
  • CF 118A.String Task(Java实现)
  • Linux基础开发工具——vim(5)
  • NC2227_约瑟夫环
  • 代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集
  • Kubernetes Service服务发现dns之CoreDNS
  • 快速排序算法详解
  • 赛博算命之“八字排盘“的JAVA实现
  • 128陷阱
  • uniapp-原生android插件开发摘要
  • Android Studio安装与配置详解
  • 软件工程-软件测试
  • fortify安全扫描Access Control: Database问题解决
  • Java 8 到 Java 17 主要新特性
  • 高频 SQL 50 题(基础版)_1141. 查询近30天活跃用户数
  • 私有化部署大模型推理性能分析
  • SQL的select语句完整的执行顺序
  • 【Java基础】Java 中的接口
  • 云服务培训六-云上安全与管理
  • 网站收录需要多久/网络推广产品公司
  • 岳阳网站建设方案/百度指数的主要用户是
  • 企业做网站要注意些什么/班级优化大师网页版登录
  • 网易云音乐网页版/武汉搜索引擎排名优化