zoukankan      html  css  js  c++  java
  • Shiro:授权控制

    容易忽略的地方记录如下:

    1.需要引入下面2个依赖,具体版本根据自身环境修改:

    <dependency>
              <groupId>org.apache.geronimo.bundles</groupId>
              <artifactId>aspectjweaver</artifactId>
              <version>1.6.8_2</version>
    </dependency>
    <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjrt</artifactId>
              <version>1.8.10</version>
    </dependency>

    2。注入这两个bean:

    /**
       * 注解访问授权动态拦截,不然不会执行doGetAuthenticationInfo
       * 
       * @param securityManager
       * @return
       */
      @Bean
      public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
        return authorizationAttributeSourceAdvisor;
      }
    
      /**
       * 授权未通过时(403)错误处理,没有这个不会跳转到403页面
       * 
       * @return
       */
      @Bean
      public SimpleMappingExceptionResolver getSimpleMappingExceptionResolver() {
        SimpleMappingExceptionResolver simpleMappingExceptionResolver = new SimpleMappingExceptionResolver();
        Properties mappings = new Properties();
        mappings.setProperty("org.apache.shiro.authz.UnauthorizedException", "/error/403");
        simpleMappingExceptionResolver.setExceptionMappings(mappings);
        return simpleMappingExceptionResolver;
      }

    完毕!

    这个时候执行如下代码,就会跳转到403页面:

    @RequiresPermissions("user:test")
    @GetMapping("/test")
    public String test() {
      String strResult = "/test";
      return strResult;
    }

    image

  • 相关阅读:
    codeforces 1060 B
    codeforces 1060 A
    牛客 国庆七天乐 day1 L
    BZOJ 1087: [SCOI2005]互不侵犯King
    codeforces 792CDivide by Three(两种方法:模拟、动态规划
    codeforces 797C Minimal string
    codeforces 110E Lucky Tree
    codeforces 798D
    2017福建省赛 FZU2272~2283
    Android -- Looper、Handler、MessageQueue等类之间关系的序列图
  • 原文地址:https://www.cnblogs.com/huiy/p/7704199.html
Copyright © 2011-2022 走看看