Shiro java 配置白名单 anon authc 等示例
时间: 2024-10-21 17:04:09 浏览: 24
Shiro是一个强大的开源安全框架,用于Java应用的安全管理。在配置中,如果你想要限制对某些资源的访问,可以设置权限白名单。例如,你可以为匿名用户(anon)和认证后的用户(authc)分别配置不同的访问规则。
以下是一个基本的Apache Shiro配置示例,展示了如何创建一个简单的白名单:
```java
// 导入必要的包
import org.apache.shiro.config.Ini;
import org.apache.shiro.ini IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
// 初始化Shiro Security Manager
Ini ini = new Ini();
ini.load("classpath:shiro.ini"); // 加载配置文件
String config = "securityManager";
SecurityManager securityManager = (SecurityManager) ini.get(config);
// 设置匿名用户白名单
Ini.Section anonymousSection = ini.get("anon");
anonymousSection.setEntry("roles", "USER"); // 允许所有USER角色的匿名访问
// 设置认证后用户白名单
Ini.Section authenticatedSection = ini.get("authc");
authenticatedSection.setEntry("roles", "ADMIN,USER"); // 只有ADMIN和USER角色的用户能通过认证
// 将SecurityManager设置到系统中
Subject subject = SecurityUtils.getSubject();
subject.set保安Manager(securityManager);
```
在这个例子中,`shiro.ini`配置文件可能包含类似这样的内容:
```ini
[securityManager]
realm = MyRealm
[anon]
credentialsMatcher = simpleTextCredentialsMatcher
authorizers = anonAuthorizer
[authc]
credentialsMatcher = simpleTextCredentialsMatcher
authorizers = customAuthorizer
```
其中,`anonAuthorizer`和`customAuthorizer`是你自定义的授权策略,可以根据需要允许特定的角色访问。
阅读全文