shiro在javaweb中最简单的使用

这篇博客介绍了如何在JavaWeb项目中集成Shiro的最简单方法。首先,通过maven的webapp模板搭建项目,并配置相应的目录结构和依赖。接着,创建shiro.ini配置文件,并在my.shiro.test包下编写测试用的Servlet。此外,文章还提供了各个Servlet的创建步骤,包括AuthenticatedServlet、FormFilterLoginServlet、LoginServlet、LogoutServlet、PermissionServlet、RoleServlet和UnAuthorizedServlet,并指导读者修改web.xml进行配置。最后,提供了不同版本的代码下载链接供读者实践。
摘要由CSDN通过智能技术生成

最简单的java集成

项目的搭建

1.使用maven的webapp模板搭建一个javaweb项目.
2.将目录结构设置成如下截图:

目录结构
3.在pom.xml中导入如下依赖:
依赖信息
4.在resources文件夹中写一个shiro.ini的配置文件,文件内容如下:
shiro配置
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值