`
李大宝
  • 浏览: 13852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

shiro-ini配置文件

阅读更多

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匹配顺序是按照你配置的顺序

 

分享到:
评论

相关推荐

    java-shiro-cas-client-demo:由 Shiro 提供的 CAS 客户端保护的演示 webapp

    受 Shiro CAS 客户端保护的 Java webapp ( ) Maven 演示使用来自 Shiro 项目 (v1.2.3) 的 ... 大多数配置在src/main/resources/shiro.ini文件中定义。 特定的注销应用程序 URL 位于: 。 在上运行您的 CAS 服务器。

    shiro-zookeeper:Apache Zookeeper 的 shiro 缓存管理器

    白动物园管理员Apache Zookeeper 的 Apache Shiro 会话缓存,它将允许您的应用程序在 Zookeeper FS...配置在siro.ini文件中,使用以下参数配置会话管理器: ## Zookeeper as user session cache managercacheManager = ...

    jfinal整合shiro实例

    完整的jFinal整合Shiro实例,部署就可使用!!! 1、Eclipse直接导入,部署到tomcat中 2、新建jfinal_shiro数据库,执行jfinal_shiro.sql 3、修改配置文件中数据库用户名...~/jfinal_shiro/resource/shiro.ini 4、运行

    Apache Shiro 使用手册(五) Shiro 配置说明

    Apache Shiro的大多数组件是基于POJO的,因此我们可以使用POJO兼容的任何配置机制进行配置,例如:Java代码、Sping XML、YAML、JSON、ini文件等等。下面,以Spring XML的配置方式为例,并且对其中的一些配置参数进行...

    vsm-tutorial:Vaadin与MySQL和Apache Shiro安全框架集成的教程

    #Vaadin Shiro MySQL教程该示例项目提供了一个...src / shiro.ini-ShiroMySQL和SHA-512哈希配置 WebContent / WEB-INF / web.xml-Shiro正常运行所必需 WebContent / WEB-INF / lib-必需的JAR文件 自述文件-MySQL文件

    基于Java和Redis的shiro缓存集中式解决方案设计源码

    shiro缓存集中式解决方案项目源码,共63个文件,全部采用Java语言编写,涉及多种文件类型如Java源代码、XML配置文件、LICENSE文件、Markdown文档、PNG图片、INI配置文件等。该项目是一个基于Java和Redis的shiro缓存...

    gaffer:JVM 的对象图配置库

    如果我们查看中的shiro.ini文件、 配置或大多数日志框架,我们也会看到类似的配置策略。 gaffer实现了第二种配置风格,旨在用于配置需要或允许复杂对象图实例化的应用程序组件。 与相比,它提供了更灵活、更、更...

    Habit-at-weave:Habit @ weave是AAL网络应用程序

    习惯@编织Habit @ weave是用于控制和监视... ==设置mysql配置您必须在以下文件中设置mysql用户名,密码和数据库名称: src / hibernate.cfg.xml WebContent / WEB-INF / shiro.ini 屏幕快照设备图表: : 睡眠图表: :

    java版斗地主源码-Mileworks-GEN:Mileworks接单轮子

    在ShiroConfig类中配置,老式的办法是在类似shiro_base_auth.ini文件中配置类似漏斗形的认证配置,注意过滤的级别,现在工程全部由shiro接管包括filter相关操作 添加系统多地登录的时候登出: 基本原理: 1.redis现在...

    Java EE常用框架.xmind

    在Shiro配置文件上配置在web.xml对应的bean 配置安全管理器 配置自定义的realm Shiro过滤器 anon:例子/admins/**=anon 没有参数,表示可以匿名使用。 authc:例如/admins/user/**=authc表示需要...

Global site tag (gtag.js) - Google Analytics