JAVA全系列 教程
3762个小节阅读:7091.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
除了过滤器,Shiro也提供了一些鉴权的注解。我们可以使用注解配置鉴权。
@RequiresGuest:不认证即可访问的资源。
@RequiresUser:通过登录方式或“记住我”方式认证后可以访问资源。
@RequiresAuthentication:通过登录方式认证后可以访问资源。
@RequiresRoles:认证用户拥有特定角色才能访问的资源
@RequiresPermissions:认证用户拥有特定权限才能访问的资源
在配置类开启Shiro注解
xxxxxxxxxx
// 开启shiro注解的支持
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
advisor.setSecurityManager(securityManager);
return advisor;
}
// 开启aop注解支持
@Bean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator defaultAAP = new DefaultAdvisorAutoProxyCreator();
defaultAAP.setProxyTargetClass(true);
return defaultAAP;
}
在控制器方法上添加鉴权注解
xxxxxxxxxx
@GetMapping("/test/index")
@RequiresGuest
public String testIndex() {
return "访问首页";
}
@GetMapping("/test/user")
@RequiresUser
public String testUser() {
return "用户中心";
}
@GetMapping("/test/pay")
@RequiresAuthentication
public String testPay() {
return "支付中心";
}
@GetMapping("/tax/find")
@RequiresPermissions("/tax/find")
public String taxFind() {
return "查询税务";
}
@GetMapping("/address/find")
@RequiresPermissions("/address/find")
public String addressFind() {
return "查询地址";
}
注:测试
@RequiresGuest
时不要忘了删掉如下代码:xxxxxxxxxx
// 访问任何资源都需要认证
// filterMap.put("/**", "user");
实时效果反馈
1. 在Shiro中,@RequiresGuest
表示
A 不认证即可访问的资源
B 通过登录方式或“记住我”方式认证后可以访问的资源。
C 通过登录方式认证后可以访问的资源。
D 认证用户拥有特定角色才能访问的资源。
2. 在Shiro中,@RequiresUser
表示
A 无需认证即可访问
B 需要登录认证才能访问
C 需要登录认证或记住我认证才能访问
D 需要特定角色才能访问
答案
1=>A 2=>C