Authentication—IniRealm验证

Realms充当Shiro与应用程序安全数据之间的桥梁,简而言之,Shiro从Realms中获取安全数据(用户,角色,权限)。Shiro  也为我么提供了一些常用的Realm(IniRealm,JdbcRealm)等,这里我们会介绍IniRealm的使用,这也是Shiro默认使用的Realm,它是从ini文件中获取用户,角色,权限。本章先介绍如何使用IniRealm验证用户的。至于Realm的原理后续会详细介绍。

ini文件它可以配置用户,角色,权限以及Realm等SecurityManager管理的组件。如下所示为Ini配置文件介绍。

[main]
# 用于配置对象实例以及其属性
# 比如:securityManager, Realms和一些其他由SecurityManager管理的实例

[users]
# 用于简单的配置用户以及其凭证,一般情况下我们都是从数据库获取用户以及凭证

[roles]
# 用于简单的配置用户的角色,一般情况下我们都是从数据库获取用户的角色,这部分会在权限控制中讲解

[urls]
# 在Web应用中基于URL的安全控制管理配置,这部分在Shiro在web中的使用部分介绍

该部分我们只是用到[users]部分配置,[users]部分允许您定义一组静态用户帐户。这在用户帐户数量很少或不需要在运行时动态创建用户帐户的环境中非常有用。[users]配置的格式为:username = password,roleName1,roleName2...roleNameN.

  • 等号左侧的值为用户账户
  • 右侧第一个值为用户密码
  • 右侧其他的值为用户的角色,一个用户可以配置多个角色
[users]
#账号  = 密码
admin = secret
#账号      = 密码  , 角色  ,    角色 其中角色为[roles]中配置的角色,此部分不涉及权限
lonestarr = vespa, goodguy, schwartz

如下为代码案例:

public class IniRealmAuthentication {
	public static void main(String[] args) {
		Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-Ini.ini");
		SecurityManager securityManager = factory.getInstance();
		SecurityUtils.setSecurityManager(securityManager);
		Subject subject = SecurityUtils.getSubject();
		try {
			UsernamePasswordToken upt = new UsernamePasswordToken("pharos", "123456");
			subject.login(upt);
			System.out.println("认证成功");
		} catch (AuthenticationException e) {
			System.out.println("认证失败");
		}
	}
}
[users]
pharos = 123456
wangke = 456789
admin = abcdefg

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值