apache http可以访问https没权限_springboot整合shiro:基于前端的权限控制和基于后端的权限控制...

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

  作者 |  xueheng_blog

来源 |  urlify.cn/rIFJzm

66套java从入门到精通实战课程分享

问题描述:

如何让前端的某个按钮在用户拥有该按钮的权限时才显示?如何让后端的某个接口在用户拥有该访问的权限时才可以访问?

解决方法:

基于前端的权限控制:前端某个按钮的隐藏或显示可以通过shiro的页面标签来控制,当用户拥有该权限时,我们就让该按钮显示,否则隐藏;

基于后端的权限控制:后端的某个接口我们可以通过shiro的注解来控制是否允许访问,当用户拥有该权限时,我们就允许访问,否则不允许访问;

一、基于前端的权限控制

标签名作用
shiro:guest允许游客访问的代码块
shiro:user允许已经验证或者通过"记住我"登录的用户才能访问的代码块。
shiro:authenticated只有通过登录操作认证身份,而并非通过"记住我"登录的用户才能访问的代码块。
shiro:notAuthenticated未登录的用户显示的代码块。
shiro:principal显示当前登录的用户信息。
只有拥有admin角色的用户才能访问的代码块。
只有拥有admin或者manager角色的用户才能访问的代码块。
没有admin角色的用户显示的代码块
只有拥有"admin:delete"权限的用户才能访问的代码块。
没有"admin:delete"权限的用户显示的代码块。

1、添加依赖


org.apache.shiroshiro-spring1.4.0

com.github.theborakompanionithymeleaf-extras-shiro2.0.0

2、在页面头上加标签支持

"http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">

3、配置shiro标签

//配置ShiroDialect:用于thymeleaf和shiro标签配合使用
@Bean
public ShiroDialect getShiroDialect(){
    return new ShiroDialect();
}

4、在页面中使用shiro标签进行权限控制:有两种方式

二、基于后端的权限控制

1、添加依赖


org.apache.shiroshiro-spring1.4.0

com.github.theborakompanionithymeleaf-extras-shiro2.0.0 

2、配置注解支持

/**
 * 开启shiro aop注解支持.
 */
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
    AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor =       new AuthorizationAttributeSourceAdvisor();
    authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
    return authorizationAttributeSourceAdvisor;
}

3、在控制层接口上添加注解

@GetMapping("/users")
@RequiresPermissions("sys:user:list") //只有拥有该权限的用户才能访问该接口
public DataResult> getAllDept(User user){
    DataResult result =DataResult.success();
    result.setData(this.userService.getUser());return result;
}

ad143c144cdd9ae0037eb798c35b0dae.png

83680c8aca70b7f2409b1fa335df6a72.png

  • 新款SpringBoot在线教育平台开源了

  • 啃了这66套Java项目课程后,终于找到工作了!

  • 精品帖子大汇总

  • 牛逼plus,Spring Boot-Shiro-Vue权限系统(细粒度控制到按钮)

感谢点赞支持下哈 57f6c7633aed9c35d8f3fd4814700bc9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值