- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安全认证框架ApacheShiro研究心得
安全认证框架-Apache Shiro研究心得?最近因为项目需要,研究了一下Apache Shiro安全认证框架,把心得记录下来。(by?西风吹雨 原创) /s/blog_6638b10d0100pd88.html?Apache Shrio是一个安全认证框架,和Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。其提供的native-session(即把用户认证后的授权信息保存在其自身提供Session中)机制,这样就可以和HttpSession、EJB Session Bean的基于容器的Session脱耦,到到和客户端应用、Flex应用、远程方法调用等都可以使用它来配置权限认证。??1、sessionMode ?在普通的WEB项目中,我们可以选择使用native session或者是HttpSession,通过设置securityManager的sessionMode参数为http或native即可。?2、realm ?我们可以基于jdbc,ldap,text,activeDirectory,jndi等多种方式来获取用户基本信息,角色信息,权限信息等。只需要在securityManager中指定使用相应的realm实现即可,其在这各方面都提供了对应的缺省实现,比如我们常用的基于数据库表的形式来配置用户权限信息,就可以使用其缺省实现的jdbcRealm(org.apache.shiro.realm.jdbc.JdbcRealm)。当然,如果认证信息来自于多方面,多个不同的来源(比如来自两个库中,或者一个数据库,一个是ldap,再配上一个缺省的基于文本的测试用等等),我们可以为securityManager指定realms参数,即把这一组安全配置都配置上。各个具体的realm实现提供了方法来获取用户基本信息、角色、权限等。?realm的授权信息可以存放在Cache中,Cache的名称可以通过设置其authorizationCacheName参数指定。3、缓存??目前Shrio缺省提供了基于ehCache来缓存用户认证信息和授权信息的实现。只需要配置org.apache.shiro.web.mgt.DefaultWebSecurityManager 这个 cacheManager并设置给SecurityManager即可。如果项目中已经存在使用的ehCacheManager配置(org.springframework.cache.ehcache.EhCacheManagerFactoryBean),DefaultWebSecurityManager则可以指定使用现有的ehCacheManager,如果不指定,它将自行使用缺省配置创建一个。同时,也可以设置cacheManagerConfigFile参数来指定ehCache的配置文件。?下例中的shiro.authorizationCache是用来存放授权信息的Cache,我们在配置realm(如myRealm或jdbcReaml)时,把authorizationCacheName属性设置shiro.authorizationCache来对应。?ehcache.xmlehcache?diskStore path=java.io.tmpdir/tuan-oauth/??defaultCache?maxElementsInMemory=10000?eternal=false?timeToIdleSeconds=120?timeToLiveSeconds=120?overflowToDisk=false?diskPersistent=false?diskExpiryThreadIntervalSeconds=120?/?!-- We want eternal=true (with no timeToIdle or timeToLive settings) because Shiro manages sessionexpirations explicitly.??If we set it to false and then set corresponding timeToIdle and timeToLive properties,ehcache would evict sessions without Shiros knowledge, which would cause many problems(e.g. My Shiro session timeout is 30 minutes - why isnt a session available after 2 minutes?Answer - ehcache expired it due to the ti
文档评论(0)