ini 配置文件
ini配置文件其实和properties配置文件一样的使用方法,都是键值对的形式(key=value),#号代表注释
ini配置中主要配置有四大类:main,users,roles,urls
[main] #提供了对根对象 securityManager 及其依赖的配置 securityManager=org.apache.shiro.mgt.DefaultSecurityManager ………… securityManager.realms=$jdbcRealm [users] #提供了对用户/密码及其角色的配置,用户名=密码,角色 1,角色 2 username=password,role1,role2 [roles] #提供了角色及权限之间关系的配置,角色=权限 1,权限 2 role1=permission1,permission2 [urls] #用于 web,提供了对 web url 拦截相关的配置,url=拦截器[参数],拦截器 /index.html = anon /admin/** = authc, roles[admin], perms["permission1"]
[main]
main主要配置shiro的一些对象,例如securityManager ,Realm,authenticator,authcStrategy 等等
#声明一个realm MyRealm1=com.shiro.mutilrealm.MyRealm1 MyRealm2=com.shiro.mutilrealm.MyRealm2 #配置验证器 authenticator = org.apache.shiro.authc.pam.ModularRealmAuthenticator # AllSuccessfulStrategy 表示 MyRealm1和MyRealm2 认证都通过才算通过 #配置策略 #authcStrategy = org.apache.shiro.authc.pam.AllSuccessfulStrategy authcStrategy = com.shiro.authenticationstrategy.MyAuthenticationStrategy #将验证器和策略关联起来 authenticator.authenticationStrategy = $authcStrategy #配置验证器所使用的Realm authenticator.realms=$MyRealm2,$MyRealm1 #把Authenticator设置给securityManager securityManager.authenticator = $authenticator
在web应用中,我们可以进行以下配置,表示如果用户没有登录进行访问时,将自动跳转到/login页面
authc.loginUrl=/login
[users]
[users]允许你配置一组静态的用户,包含用户名,密码,角色,一个用户可以有多个角色,可以配置多个用户,例如
username = password, roleName1, roleName2, …, roleNameN
这里涉及到密码,就牵扯到加密的问题,我们可以MD5,Sha1,Sha256等算法进行加密
[main] #告诉shiro我们用哪个加密算法 sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher iniRealm.credentialsMatcher = $sha256Matcher [users] #用户名=密码,角色 admin=355b1bbfc96725cdce8f4a2708fda310a80e6d13315aec4e5eed2a75fe8032ce,role1
获取密码的 hex 加密字符串
String ss = new Sha256Hash("cc").toHex();
[roles]
[roles]将角色和权限关联起来,格式为:角色名=权限字符串1,权限字符串2…..,例如
role1 = printer:print,printer:query
[urls]
这部分配置主要在web应用中,格式为:url=拦截器[参数],拦截器[参数]……,例如
/login=anon /unauthorized=anon /static/**=anon /authenticated=authc /role=authc,roles[admin] /permission=authc,perms["user:create"]
解析
- anon表示匿名访问,即不需要登录就可以访问,例如/login这个路径可以匿名访问
- authe表示需要登录才能访问
- roles[admin]表示有admin这个角色的用户才能访问
- perms[“user:create”]表示有这个权限的才能访问
url通配符
- ?:匹配一个字符
- *:匹配零个或多个字符
- **:匹配零个或多个路径
url匹配顺序是按照你配置的顺序
相关推荐
4. **shiro-config-ogdl-1.7.1.jar**: OGDL(Open Graph Description Language)配置解析库,Shiro支持用OGDL格式来配置安全策略,这使得配置文件更加简洁和直观。 5. **shiro-spring-1.7.1.jar**: 这是Shiro与...
了解和使用这些jar包,开发者可以根据项目需求选择合适的模块,通过配置Shiro的 Ini、XML 或 Java 配置文件,实现安全框架的集成。例如,通过`Realm`类实现与数据库或其他后端服务的交互,自定义身份验证和授权逻辑...
在这样的集成环境中,"master"分支应该包含了SpringMVC的配置文件(如spring-mvc.xml)、MyBatis的配置文件(mybatis-config.xml和Mapper XML文件)、Shiro的配置文件(shiro.ini或对应的Java配置)以及Redis的配置...
2. 配置Shiro:创建Shiro配置文件,如shiro.ini,定义安全规则、过滤器链等。 3. 编写Shiro配置类:在Spring MVC应用中,创建一个配置类,通过@Bean注解声明Shiro的相关组件,如SecurityManager、Realm等。 4. ...
- **配置**:理解如何在配置文件中设置Shiro的行为,如`shiro.ini`或Java配置。 在实际使用中,你还需要了解如何将Shiro与Spring、MyBatis等其他框架集成,以实现更复杂的业务需求。 总之,Apache Shiro是一个功能...
此外,"shiro-main.zip"可能还包含了配置文件(如shiro.ini或shiro.xml)、示例代码、测试用例等,帮助开发者理解和使用Shiro框架。如果你正在学习或使用Shiro,解压并研究这些文件将有助于深入理解其工作原理和用法...
3. **配置 Shiro**:在 Shiro 配置文件(如 `shiro.ini` 或 `shiro.xml`)中,你需要指定 CAS 服务器的 URL,以及你的应用如何验证服务票证。这包括 CAS 登录 URL、服务验证 URL 和 CAS 出票 URL。 4. **创建 ...
- **配置文件**:Shiro的配置文件(如shiro.ini或XML配置)展示了如何设置安全策略,包括 Realm 配置、过滤器链定义等。 在实际开发中,你可能需要结合这些资源来完成以下任务: 1. **集成Shiro到你的项目**:根据...
2. **配置Shiro**:创建一个`shiro.ini`配置文件,定义用户、角色和权限。在Spring MVC应用中,通常会通过`iniRealm`来加载这个配置。 3. **Shiro过滤器**:在`web.xml`或Spring Boot的配置中,设置Shiro的过滤器链...
在这个例子中,你需要配置Shiro的`shiro.ini`或`shiro.xml`文件,定义角色、权限和用户的映射关系。例如,设置哪些角色可以访问哪些URL,以及用户的认证和授权规则。 6. **过滤器链配置** `web.xml`中需要配置...
2. 配置Shiro:在Shiro的配置文件(如`shiro.ini`或XML配置)中,指定使用Ehcache作为缓存管理器。这通常涉及到配置`cacheManager`元素,指定为`ehcache`类型,并指定Ehcache的配置文件位置。 ```ini [main] ...
- `src/main/resources`:存放配置文件,如`shiro.ini`、Spring配置文件等。 - `pom.xml`:Maven项目配置文件,列出所需的依赖库,如Shiro、Spring、Spring MVC等。 通过这个示例项目,你可以深入理解Shiro与Spring...
- `shiro.ini`: Shiro 的配置文件,可以定义默认的安全设置,如登录 URL、登出 URL、拦截规则等。不过,当与 Spring Boot 结合时,更多情况下会选择使用 Java 配置(`ShiroConfig` 类)来替代 ini 配置。 3. `main...
2. **src/main/resources** - 存放配置文件,比如Spring的`applicationContext.xml`或`application.properties`,Shiro的`shiro.ini`或`shiro.xml`,以及数据库连接配置等。 3. **webapp** - 代表Web应用的根目录,...
- 配置Shiro:编写`shiro.ini`或在Spring配置文件中配置Shiro的相关设置,如 Realm(认证/授权信息源)、过滤器链等。 - 创建自定义Realm:实现`AuthorizingRealm`接口,覆盖`doGetAuthenticationInfo`和`...
在`shiro.web`这个项目中,我们可以看到Web应用的相关配置,可能包括了Spring MVC的Controller、Service和DAO,以及与Shiro相关的配置文件,如`shiro.ini`或`shiro.xml`。 在配置文件中,我们需要将自定义的Realm...
- **配置文件**:如 `shiro.ini` 或 `application.yml`,定义 Realm 设置、过滤器链等。 - **控制器**:处理前端请求,调用 Shiro 进行认证和授权。 - **服务层**:与 Realm 交互,获取和设置用户权限信息。 - **...
在 `src/main/resources` 下,可能存在一个 `shiro.ini` 或 `shiro.xml` 配置文件,用于定义 Shiro 的配置,包括用户、角色和权限的定义。例如,你可以在这里指定默认的登录页面、未授权页面,或者定义用户的角色和...
Shiro的INI配置文件通常以.ini结尾,例如shiro-config.ini。INI文件的配置项主要分为两部分:main和Realm。main部分配置SecurityManager的基本信息,而Realm部分配置Realm的信息。 在Shiro的INI配置中,...
例如,在`shiro.ini`配置文件中,你可以定义哪些用户拥有哪些角色,以及角色对应的权限。代码中可能包含`hasRole()`和`isPermitted()`等方法的使用,用于在运行时检查用户权限。 3. **会话管理(Session Management...