springboot-shiro-thymeleaf简单运用

springboot-shiro

  • 依赖

    • <!--shiro-->
      <dependency>
          <groupId>com.github.boyazuo</groupId>
          <artifactId>shiro-spring-boot-starter</artifactId>
          <version>1.0.3</version>
      </dependency>
       <!--thymeleaf-shiro-->
      <dependency>
      	<groupId>com.github.theborakompanioni</groupId>
      	<artifactId>thymeleaf-extras-shiro</artifactId>
      	<version>2.0.0</version>
      </dependency>
      
  • 配置类:ShiroConfig

    • /*shiro命名空间*/
      @Bean
      public ShiroDialect getShiroDialect(){
      	return new ShiroDialect();
      }
      
      @Bean
      /*First:创建自定义Realm*/
      public UserRealm userRealm(){
      	return new UserRealm();
      }
      
      @Bean(name = "defaultWebSecurityManager")
      /*创建安全管理器SecuritManage
      * 1. 添加realm
      * */
      public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm){
      
      	DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
          
      	securityManager.setRealm(userRealm);
          
      	return securityManager;
      }
      
      @Bean
      /*创建工厂SecurityManagerFactory
      * 1. 设置安全管理器
      * 2. 设置网页权限
      * 3. 设置登录页面
      * 4. 设置登出
      * */
      public ShiroFilterFactoryBean getShiroFilterFactoryBean(
      @Qualifier("defaultWebSecurityManager") DefaultWebSecurityManager securityManager){
      
              ShiroFilterFactoryBean shiroFactory = new ShiroFilterFactoryBean();
      
              shiroFactory.setSecurityManager(securityManager);
      
              /* 设置网页权限
              * anon 无需认证就可以访问
              * authc 需认证才可访问
              * user 必需拥有  记住我  功能才可访问
              * perms 拥有对某个资源的权限才可访问
              * role 拥有某个角色权限才可访问
              * */
      
              Map<String,String> filterMap =new LinkedHashMap<>();
      
              filterMap.put("/level1","perms[user:level1]");
              filterMap.put("/level2","perms[user:level2]");
              filterMap.put("/level3","perms[user:level3]");
      
              shiroFactory.setFilterChainDefinitionMap(filterMap);
      
              shiroFactory.setLoginUrl("/login");
      
              return shiroFactory;
          }
      
  • 引入命名空间:xmlns:shiro=“http://www.pollix.at/thymeleaf/shiro”

  • html基础语法

    • <p shiro:guest>Please <a th:href="@{login}">登录</a></p>>
          
      <h1 shiro:principal property="username"></h1>
          
      <div shiro:hasPermission="user:level1">
      	<a href="level1">等级一</a>
      </div>
          
      <div shiro:hasRole="user">
      	<h1 shiro:principal property="username"></h1>
      </div>
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值