shiro权限之自定义 jdbcRealm测试

引入mysql相关依赖

  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
    </dependency>

    <!--shiro核心包-->
    <dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-core</artifactId>
      <version>1.4.0</version>
    </dependency>

配置数据库连接和数据源配置

  //创建数据源
  DruidDataSource datasource = new DruidDataSource();
  //设置连接
  {
    datasource.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone = GMT%2B8&useSSL = false ");
    datasource.setUsername("root");
    datasource.setPassword("root");
  }

在这里插入图片描述创建相关数据库表结构

在这里插入代码片 @Test
  public void jdbcRealm() {
    //创建JdbcRealm
    JdbcRealm jdbcRealm = new JdbcRealm();
    jdbcRealm.setDataSource(datasource);
    jdbcRealm.setPermissionsLookupEnabled(true);
    //自定义sql
    String sql = "select password from  test_user where username = ?";
    jdbcRealm.setAuthenticationQuery(sql);
    //构建securityManager环境
    final DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
    defaultSecurityManager.setRealm(jdbcRealm);
    //主体提交认证请求加入到securityManager环境 通过shiro的工具类SecurityUtils获取认证或授权的主体
    SecurityUtils.setSecurityManager(defaultSecurityManager);
    Subject subject = SecurityUtils.getSubject();
    //模拟用户账号Token进行认证和授权
    UsernamePasswordToken token = new UsernamePasswordToken("baobao", "521314");
    //登录
    subject.login(token);
//    subject.checkRoles("admin");
//    subject.checkPermissions("add");

  }

数据jdbcRealm默认的sql语句

*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值