• 【Shiro】二、Apache Shiro配置


    1、配置

    使用配置获得SecurityManager,SecurityManager是核心,配置好并获取到SecurityManager,Shiro就算正式运行起来了。

    两种方式:通过ini文件;通过ini实例

    ini文件的格式

    段:一个ini文件分为4段内容,段用[]表示;每段用键值对来进行配置

    [main]:SecurityManager相关对象及其属性

    [users]:静态定义的用户信息

    [roles]:静态定义的角色信息

    [urls]:Web应用中基于URL的安全控制

    [main]
    #定义对象
    sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
    
    #定义对象及其属性
    myRealm = com.company.security.shiro.DatabaseRealm
    myRealm.connectionTimeout = 30000
    myRealm.username = jsmith
    myRealm.password = secret
    #引用对象
    myRealm.credentialsMatcher = $sha256Matcher
    
    #定义嵌套属性
    securityManager.sessionManager.globalSessionTimeout = 1800000
    
    #集合属性
    securityManager.sessionManager.sessionListeners = $listen1,$listen2
    anObject = some.class.with.a.Map.property
    anObject.mapProperty = key1:$obj1,key2:$obj2
    
    #重写覆盖
    myRealm = com.company.security.MyRealm
    myRealm = com.company.security.DatabaseRealm
    
    #自定义SecurityManager
    securityManager = com....MyCustomerSecurityManager
    
    [users]
    #格式:用户名 = 密码,角色1,角色2,角色3...
    admin = secret
    louis = 520,admin
    yang = 1234,customer,controller
    
    [roles]
    #格式:角色名 = 权限表达式1,权限表达式2.....
    #权限表达式的格式:类型:操作:id,使用*通配符
    #admin角色拥有所有权限
    admin = *
    #louis角色可以做sale类型的任何事
    louis = sale:*
    #yang角色可以做sale类型下confirm事件,且只能操作0001id
    yang = sale:confirm:0001
    
    [urls]
    后面再讲

    一般使用ini的方式配置,除非运行环境内存小,有限制,才用编程模式

    2、术语

    了解一下Shiro中用到的一些英文术语

    Authentication:认证

    Authorization:授权

    Credential:用户凭证,如密码、token

    Principal:用户标识,如用户名

    Subject:用户

    Role:角色

    Permission:功能权限

    Session:会话

    Realm:安全DAO

    Cryptography:密码术

      Cipher:加密算法

      Hash:散列算法

  • 相关阅读:
    性能测试基本功 手动配置nginx+phpcgi+zend+mysql
    MySQL的show full processlist命令
    LoadRunner测试Webservices的例子
    Firefox 5 公开测试下载
    Shunra 即将发布 PerformanceSuite 7.0 和NetworkCatcher 7.0
    LoadRunner常见问题
    动态生成的图片保存成png格式
    如何解决ASP.NET程序安装到繁体系统上的乱码问题
    在Ubuntu上下载、编译和安装Android最新源代码
    腾讯微博api的蛋疼问题
  • 原文地址:https://www.cnblogs.com/LiveYourLife/p/8677559.html
Copyright © 2020-2023  润新知