最简单的java集成
项目的搭建
1.使用maven的webapp模板搭建一个javaweb项目.
2.将目录结构设置成如下截图:
3.在pom.xml中导入如下依赖:
4.在resources文件夹中写一个shiro.ini的配置文件,文件内容如下:
5.为了证明我们的shiro.ini能用,我们在java文件夹下建一个测试用的包my.shiro.test.,在里面写一个test.java,代码如下:
package my.shiro.test;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
public class test {
public static void main(String[] args)
{
//读取配置文件信息
Factory<SecurityManager> securityManagerFactory=
new IniSecurityManagerFactory("classpath:shiro.ini");
//获取读取了配置文件信息的securitymanager对象
SecurityManager securityManager=securityManagerFactory.getInstance();
//将securitymanager对象写入securityutils中
SecurityUtils.setSecurityManager(securityManager);
//获得与当前系统进行交互的对象
Subject subject=SecurityUtils.getSubject();
//创建一个验证令牌,根据这个令牌进行验证,这里是账号密码验证
//由于我们还没有写登录界面,因此要给令牌手动设置账号密码,等价于我们在登录页面写的账号密码
UsernamePasswordToken token=new UsernamePasswordToken("root","123456");
//判断当前subject是否有账号通过验证
System.out.println(subject.isAuthenticated());
//进行登陆验证,如果不通过会根据抛出的异常发现错误
try{
subject.login(token);
if (subject.isAuthenticated())
{
System.out.println("登陆成功");
if (subject.hasRole("admin"))
{
System.out.println("该用户有admin角色");
}
}
}catch (Exception e)
{
e.printStackTrace();
System.out.println("用户名或密码错误,登陆失败");
}
System.out.println(subject.isAuthenticated());
}
}
这个版本代码的下载链接
simplelogin下载链接
提取码:ooj7
集成javaweb
- 根据上面一个项目你已经知道了要使用shiro应具有最基本的东西,那么接下来请跟随我的脚步进行修改.
设置resources的文件
- 将shiro.ini改成如下:
[main]
#默认是/login.jsp
authc.loginUrl=/login
roles.unauthorizedUrl=/unauthorized
perms.unauthorizedUrl=/unauthorized
logout.redirectUrl=/login
[users]
zhang=123,admin
wang=123
[roles]
admin=user:*,menu:*
[urls]
/logout2=logout
/login=anon
/logout=anon
/unauthorized=anon
/static/**=anon
/authenticated=au