Shrio权限验证2-两种验证类型

IniRealm验证:

在resource目录下配置:user.ini文件
	[users]
	link=123456,admin
	[roles]
	admin=user:delete,user:update

   
public class IniRealmTest {
    //ini文件验证
    IniRealm iniRealm=new IniRealm("classpath:user.ini");
    @Test
    public void testAuthentication(){
        //1、构建SecurityManger环境
        DefaultSecurityManager defaultSecurityManager=new 	DefaultSecurityManager();
        defaultSecurityManager.setRealm(iniRealm);

        //2、主体提交认证请求
        SecurityUtils.setSecurityManager(defaultSecurityManager);
        Subject subject= SecurityUtils.getSubject();

        UsernamePasswordToken token=new UsernamePasswordToken("link","123456");
        subject.login(token);

        System.out.println("Authenticated:"+subject.isAuthenticated());

        //subject.checkRole("admin");
        subject.checkPermission("user:delete");
        subject.checkPermission("user:update");
    }
    }

JdbcRealm验证:

配置pom:
	<dependency>
	   <groupId>mysql</groupId>
	   <artifactId>mysql-connector-java</artifactId>
	   <version>5.1.45</version>
	</dependency>
	<dependency>
	   <groupId>com.alibaba</groupId>
	   <artifactId>druid</artifactId>
	   <version>1.1.6</version>
	</dependency>
建立数据库test,创建权限表users

public class JdbcRealmTest{
  DruidDataSource dataSource=new DruidDataSource();
    @Before
    public void  JDBCRealmSet(){
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/test");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
    }
    @Test
  public void testAuthentication(){
        JdbcRealm jdbcRealm=new JdbcRealm();
        jdbcRealm.setDataSource(dataSource);
        jdbcRealm.setPermissionsLookupEnabled(true);

        String sql="select password from user where username=?";
        jdbcRealm.setAuthenticationQuery(sql);

        //1、构建SecurityManger环境
        DefaultSecurityManager defaultSecurityManager=
        							new DefaultSecurityManager();
        defaultSecurityManager.setRealm(jdbcRealm);

        //2、主体提交认证请求
        SecurityUtils.setSecurityManager(defaultSecurityManager);
        Subject subject= SecurityUtils.getSubject();

        UsernamePasswordToken token=
        				new UsernamePasswordToken("link","123456");
        subject.login(token);
        System.out.println("Authenticated:"+subject.isAuthenticated());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值