SpringBoot:Spring Boot整合Shiro安全框架

本文详细记录了如何在Spring Boot 2.x项目中整合SpringMvc、Shiro和MybatisPlus,构建后台管理系统的过程。主要内容包括Shiro的maven依赖、配置类、过滤器链设置、自定义Realm、登录控制器实现以及异常处理。通过这个指南,读者可以了解Shiro的使用方法并应用于自己的项目。
摘要由CSDN通过智能技术生成

最近在由Spring Boot2.x构建的更简洁的后台管理系统,完美整合SpringMvc + Shiro + MybatisPlus + Beetl技术,项目开发完成会开源出来,希望能对大家学习道路上有所帮助。在这一篇中我将把我整合Shiro过程记录下来,希望对大家的学习这块能有所帮助。

maven依赖包



org.apache.shiro
shiro-spring
1.4.0

    <!--shiro依赖和缓存-->
    <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>slf4j-api</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
        <version>1.4.0</version>
    </dependency>

Shiro 配置类

/** * Shiro配置中心 * * @Auther: hrabbit * @Date: 2018-12-24 12:33 PM

  • @Description: */ @Configuration public class ShiroConfig {

    /**

    • Shiro的过滤器链
      */
      @Bean
      public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
      ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
      shiroFilter.setSecurityManager(securityManager);

      /**

      • 默认登录路径
        */
        shiroFilter.setLoginUrl("/login");

      /**

      • 登录成功后要跳转的链接
        /
        shiroFilter.setSuccessUrl("/");
        /
        *
      • 没有权限的时候跳转页面
        /
        shiroFilter.setUnauthorizedUrl("/global/error");
        /
        *
      • 配置shiro拦截器链
      • anon 不需要认证
      • authc 需要认证
      • user 验证通过或RememberMe登录的都可以
      • 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的
      • 顺序从上到下,优先级依次降低
      • api开头的接口,走rest api鉴权,不走shiro鉴权

      */
      Map<String, String> hashMap = new LinkedHashMap<>();
      hashMap.put("/static/", “anon”);
      hashMap.put("/login", “anon”);
      hashMap.put("/global/sessionError", “anon”);
      hashMap.put("/
      ", “user”);
      shiroFilter.setFilterChainDefinitionMap(hashMap);
      return shiroFilter;
      }

    /**

    • 凭证匹配器
    • (由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了
    • @return
      */
      @Bean
      public HashedCredentialsMatcher hashedCredentialsMatcher() {
      HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCre
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值