shiro

Shiro核心api

subject: 用户主体(把操作交给SecurityManager)

SecurityManager:安全管理器(关联Realm)

Realm:shiro连接数据库的桥梁

--------------------------------
用户认证

1.Controller

//使用shiro编写认证
Subject subject=SecurityUtils.getSubject();
//封装用户数据
UsernamePasswordToken token=new UsernamePasswordToken(username,password);
//执行登录方法
subject.login(token);//跳转到认证逻辑

2.ShiroConfig

配置shiro内置过滤器

创建securityManager

执行UserRealm认证逻辑

返回到controller

用户授权

1.html进入

<shiro:hasPermission name="user:add"> 进入用户添加功111能<a href="/sb/user/add">用户添加</a><br> </shiro:hasPermission> <shiro:hasPermission name="user:update"> 进入用户更新功111能<a href="/sb/user/update">用户更新</a><br> </shiro:hasPermission>

2.ShiroConfig

配置授权过滤器

//授权过滤器
filterMap.put("/sb/user/add","perms[user:add]");
filterMap.put("/sb/user/update","perms[user:update]");

2.UserRealm

执行授权逻辑

 //给资源进行授权
 SimpleAuthorizationInfo info=new SimpleAuthorizationInfo();
 //添加资源的授权字符串
 //info.addStringPermission("user:add");
 //到数据库查询当前登录用户的授权字符串
 //获取当前登录用户
 Subject subject = SecurityUtils.getSubject();
 user user=(user) subject.getPrincipal();
 user dbUser=userService.findByid(user.getUserid());
 //dbUser.getPerms();
// info.addRole("userA");
 info.addStringPermission(dbUser.getPerms());
 return info;

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值