本次主要是利用Shiro进行基本的身份验证,用户信息先保存在文件之中,采取读资源文件的形式。
1、 创建一个maven工程
2、 将shiro开发包拷贝到pom.xml文件
(最新稳定版本为1.4.1)
3、 在资源目录下建立一个user-info.ini文件,包含如下信息
[users]
admin=admin
hello=world
主要定义了两个用户,等号前面为身份信息,等号后面为认证信息。
在Shiro之中,关于认证信息的读取涉及到两个接口对象Factory和SecuruityManager。SecuruityManager是通过Factory接口下的getInstance()方法获取,由于本次实验主要通过资源文件形式操作,所以使用Factory的子类IniSecurityManagerFactory进行读取。
而对于具体的认证信息处理操作,则一定通过Subject接口实现,SecurityManager只是一个认证信息的集合,不提供Subject信息的获取。所以,Shiro提供org.apache.shiro.SecurityUtils这个处理类进行操作。
Subject接口下提供了一个登录验证方法:public void login(AuthenticationToken token) throws AuthenticationException,本次利用它做一个基础身份的认证。
根据以上内容,编写了如下代码实现:
如果用户名正确,密码错误,将会抛出IncorrectCredentialsException;而如果用户名不正确,则会抛出UnknownAccountException;同时需要注意的是账户出现了错误,密码是不会进行验证的。