当前位置: 首页 > news >正文

wordpress从csv批量发帖优化网站怎么真实点击

wordpress从csv批量发帖,优化网站怎么真实点击,做网站推广怎么定位客户,门户网站衰落的原因学习目标 11.1 会话管理11.1.1 会话相关API一、获取会话二、会话属性管理三、会话信息获取四、会话控制五、会话监听六、会话DAO七、会话验证 11.2 缓存一、缓存接口二、内置缓存实现三、配置缓存四、使用缓存五、缓存清理六、注意事项 前面两章我们已经掌握了Shiro四大基石的认…

学习目标

  • 11.1 会话管理
    • 11.1.1 会话相关API
      • 一、获取会话
      • 二、会话属性管理
      • 三、会话信息获取
      • 四、会话控制
      • 五、会话监听
      • 六、会话DAO
      • 七、会话验证
    • 11.2 缓存
      • 一、缓存接口
      • 二、内置缓存实现
      • 三、配置缓存
      • 四、使用缓存
      • 五、缓存清理
      • 六、注意事项

  前面两章我们已经掌握了Shiro四大基石的认证和授权,(如果没有了解可以去我主页看看 第九至十章的内容来学习)且基于SpringBoot+Shiro实现了动态认证和授权,基本完成CRM客户关系管理系统重的权限控制。
  本章我们学习另两个基石:会话管理和加密,并对上章的动态授权进行优化,使用Redis缓存用户权限信息。

11.1 会话管理

11.1.1 会话相关API

Shiro是一个强大的Java安全框架,提供了完整的企业级会话管理功能。在Shiro中,与会话相关的API主要包括以下几个方面:

一、获取会话

  • Subject.getSession():获取当前用户的会话。如果当前没有创建会话对象,则会创建一个新的会话。这等价于Subject.getSession(true)。
  • Subject.getSession(boolean create):根据参数决定是否创建一个新的会话。如果create为true且当前没有会话,则创建一个新的会话;如果为false且当前没有会话,则返回null。

二、会话属性管理

  • session.setAttribute(key, value):设置会话属性。
  • session.getAttribute(key):获取会话属性。
  • session.removeAttribute(key):删除会话属性。

三、会话信息获取

  • session.getId():获取当前会话的唯一标识。
  • session.getHost():获取当前Subject的主机地址。在会话开始时,Shiro会存储用户的IP地址和主机名,以此可以判断用户的位置。
  • session.getTimeout() & session.setTimeout(毫秒):获取/设置当前Session的过期时间。
  • session.getStartTimestamp() & session.getLastAccessTime():获取会话的启动时间及最后访问时间。如果是JavaSE应用,需要自己定期调用session.touch()去更新最后访问时间;如果是JavaEE应用,每次进入ShiroFilter都会自动调用session.touch()来更新最后访问时间。

四、会话控制

  • session.touch():更新会话的最后访问时间,让会话保持活跃状态。
  • session.stop():销毁会话。当调用Subject.logout()时,会自动调用session.stop()方法来销毁会话。在Web应用中,调用HttpSession.invalidate()也会自动调用session.stop()来销毁Shiro的会话。

五、会话监听

Shiro提供了会话监听器,用于监听会话的创建、过期及停止事件。要实现自己的会话监听器,需要实现SessionListener接口,并重写以下方法:

  • onStart(Session session):监听会话创建事件。
  • onStop(Session session):监听会话销毁事件。
  • onExpiration(Session session):监听会话过期事件。

六、会话DAO

Shiro提供了SessionDAO接口及其多种实现,用于会话的CRUD(创建、读取、更新、删除)操作。常用的实现类包括:

  • AbstractSessionDAO:提供了SessionDAO的基础实现,如生成会话ID等。
  • CachingSessionDAO:提供了对开发者透明的会话缓存功能,需要设置相应的CacheManager。
  • MemorySessionDAO:直接在内存中进行会话维护。
  • EnterpriseCacheSessionDAO:提供了缓存功能的会话维护,默认情况下使用MapCache实现,内部使用ConcurrentHashMap保存缓存的会话。

七、会话验证

Shiro提供了会话验证调度器,用于定期验证会话是否已过期。如果过期,将停止会话。Shiro提供了两种会话验证调度器:

  • SessionValidationScheduler:默认的会话验证调度器。
  • QuartzSessionValidationScheduler:使用Quartz作为定时任务的会话验证调度器。使用Quartz时需要导入shiro-quartz依赖。

以上内容涵盖了Shiro中与会话相关的API及其主要功能。开发者可以根据这些API和功能来实现自定义的会话管理逻辑。

11.2 缓存

在Apache Shiro中,缓存是提高性能和效率的关键组件。Shiro提供了多种缓存实现,允许开发者根据需求选择合适的缓存机制。以下是Shiro中与缓存相关的关键概念和代码示例:

一、缓存接口

Shiro的缓存接口主要包括Cache<K, V>和CacheManager。

  • Cache<K, V>:定义了缓存的基本操作,如获取、放入、删除缓存项等。
  • CacheManager:管理多个缓存实例的工厂,可以根据缓存的名称获取对应的缓存实例。

二、内置缓存实现

Shiro提供了几种内置的缓存实现:

  • MemoryConstrainedCacheManager:基于内存的缓存管理器,可以设置缓存的最大数量和每个缓存项的最大大小。
  • EhcacheManager:集成Ehcache作为缓存实现。
  • HazelcastCacheManager:集成Hazelcast作为分布式缓存实现。
  • JCacheManager:集成JSR-107(Java缓存API)作为缓存实现。

三、配置缓存

在Shiro的配置文件中(如shiro.ini或Spring配置文件),可以配置缓存管理器。

例如,在shiro.ini中配置Ehcache:

[main]  
cacheManager = org.apache.shiro.cache.ehcache.EhCacheManager  
cacheManager.configLocation = classpath:ehcache.xml  
securityManager.cacheManager = $cacheManager

在Spring配置中,可以这样配置:

<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">  <property name="configLocation" value="classpath:ehcache.xml"/>  
</bean>  
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">  <property name="cacheManager" ref="cacheManager"/>  <!-- 其他配置 -->  
</bean>

四、使用缓存

在Shiro中,缓存通常用于存储授权信息(如角色和权限)和身份验证信息(如用户信息和会话)。开发者可以在自定义的Realm或过滤器中使用缓存来提高性能。

例如,在自定义Realm中,可以使用缓存来存储从数据库或其他数据源加载的用户信息和权限信息:

public class MyRealm extends AuthorizingRealm {  // 假设有一个缓存实例  private Cache<String, AuthorizationInfo> authorizationCache;  @Override  protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {  String username = (String) principals.getPrimaryPrincipal();  AuthorizationInfo info = authorizationCache.get(username);  if (info == null) {  // 从数据源加载授权信息  info = loadAuthorizationInfo(username);  // 将授权信息放入缓存  authorizationCache.put(username, info);  }  return info;  }  // 加载授权信息的方法  private AuthorizationInfo loadAuthorizationInfo(String username) {  // 实现从数据源加载授权信息的逻辑  }  // 设置缓存实例的方法(通常在Spring配置中注入)  public void setAuthorizationCache(Cache<String, AuthorizationInfo> authorizationCache) {  this.authorizationCache = authorizationCache;  }  
}

五、缓存清理

由于缓存中的数据可能会过期或无效,因此需要定期清理缓存。Shiro的缓存实现通常会自动处理缓存过期和清理的问题,但开发者也可以根据需要手动清理缓存。

例如,在Ehcache中,可以通过配置元素来设置缓存的清理策略,如LRU(最近最少使用)、LFU(最不经常使用)等。

在Shiro的自定义实现中,也可以调用Cache.clear()方法来手动清理缓存。

六、注意事项

  • 缓存中的数据可能是敏感的,因此要确保缓存的配置和访问控制是安全的。
  • 缓存的性能提升是以牺牲内存为代价的,因此要合理设置缓存的大小和清理策略。
  • 在分布式环境中,要使用分布式缓存解决方案来确保数据的一致性。

通过以上配置和使用方法,开发者可以在Shiro中充分利用缓存来提高应用程序的性能和效率。


文章转载自:
http://dinncovapour.ssfq.cn
http://dinncoinactively.ssfq.cn
http://dinncoalfine.ssfq.cn
http://dinncofiveshooter.ssfq.cn
http://dinncopinup.ssfq.cn
http://dinnconeurochemist.ssfq.cn
http://dinncoallness.ssfq.cn
http://dinncoinveigher.ssfq.cn
http://dinncoepileptoid.ssfq.cn
http://dinncosandpapery.ssfq.cn
http://dinncoviolator.ssfq.cn
http://dinncoinbound.ssfq.cn
http://dinncocaprine.ssfq.cn
http://dinnconipponese.ssfq.cn
http://dinncodesegregation.ssfq.cn
http://dinncolubrication.ssfq.cn
http://dinncoseptette.ssfq.cn
http://dinncogermen.ssfq.cn
http://dinncoedifice.ssfq.cn
http://dinncosoakage.ssfq.cn
http://dinncoimmunoglobulin.ssfq.cn
http://dinncoardeb.ssfq.cn
http://dinncotruism.ssfq.cn
http://dinncoalkalize.ssfq.cn
http://dinnconepali.ssfq.cn
http://dinncospree.ssfq.cn
http://dinncosexcentenary.ssfq.cn
http://dinncoaztec.ssfq.cn
http://dinncoautohypnosis.ssfq.cn
http://dinncoidyll.ssfq.cn
http://dinncojockeyship.ssfq.cn
http://dinncokeratode.ssfq.cn
http://dinncovespid.ssfq.cn
http://dinncodepositional.ssfq.cn
http://dinncodisassociate.ssfq.cn
http://dinncoornithologist.ssfq.cn
http://dinncogreenroom.ssfq.cn
http://dinncosarcogenic.ssfq.cn
http://dinncofdt.ssfq.cn
http://dinncomantua.ssfq.cn
http://dinncowhacky.ssfq.cn
http://dinnconightwork.ssfq.cn
http://dinncoindiscerptible.ssfq.cn
http://dinncounreeve.ssfq.cn
http://dinncounswear.ssfq.cn
http://dinncomineralization.ssfq.cn
http://dinncobrainpan.ssfq.cn
http://dinncodefloration.ssfq.cn
http://dinncodiphenylaminechlorarsine.ssfq.cn
http://dinncohoodlum.ssfq.cn
http://dinncokoroseal.ssfq.cn
http://dinnconeurosurgeon.ssfq.cn
http://dinnconewfoundlander.ssfq.cn
http://dinncocounterview.ssfq.cn
http://dinncoovercentralized.ssfq.cn
http://dinncodovelike.ssfq.cn
http://dinncoinhomogenous.ssfq.cn
http://dinncoantimetabolite.ssfq.cn
http://dinncomegalocephaly.ssfq.cn
http://dinncounrhythmic.ssfq.cn
http://dinncotrepan.ssfq.cn
http://dinncoatheist.ssfq.cn
http://dinncoedrophonium.ssfq.cn
http://dinncoparcel.ssfq.cn
http://dinncostratoscope.ssfq.cn
http://dinncowwf.ssfq.cn
http://dinncopemphigus.ssfq.cn
http://dinncotsetse.ssfq.cn
http://dinncocircunglibal.ssfq.cn
http://dinncohyenoid.ssfq.cn
http://dinncorestrain.ssfq.cn
http://dinncorotatablely.ssfq.cn
http://dinncolomentaceous.ssfq.cn
http://dinncosprite.ssfq.cn
http://dinncorimu.ssfq.cn
http://dinncoresponseless.ssfq.cn
http://dinncoracemiform.ssfq.cn
http://dinncochlormadinone.ssfq.cn
http://dinncovancomycin.ssfq.cn
http://dinncokelleg.ssfq.cn
http://dinncoincremental.ssfq.cn
http://dinncotectosilicate.ssfq.cn
http://dinncostrombuliform.ssfq.cn
http://dinncofurrow.ssfq.cn
http://dinncobortz.ssfq.cn
http://dinncomidcult.ssfq.cn
http://dinncoanthropic.ssfq.cn
http://dinncodud.ssfq.cn
http://dinncobarspoon.ssfq.cn
http://dinncounshown.ssfq.cn
http://dinncolandfall.ssfq.cn
http://dinncosoftware.ssfq.cn
http://dinncorefitment.ssfq.cn
http://dinncounfirm.ssfq.cn
http://dinncofaradization.ssfq.cn
http://dinncoacetin.ssfq.cn
http://dinncogarbo.ssfq.cn
http://dinncottf.ssfq.cn
http://dinncofoots.ssfq.cn
http://dinncodorsetshire.ssfq.cn
http://www.dinnco.com/news/100736.html

相关文章:

  • 网站方案模板百度seo排名优化技巧分享
  • 垂直网站导航是谁做的上海seo公司排名榜
  • 建站之星做出的网站不安全广告视频
  • 青岛开发区做网站长春网站制作公司
  • 我谁知道在哪里可以找人帮忙做网站深圳百度开户
  • 做电子商务网站需要办理什么证百度竞价推广方案
  • 长沙做网站价格提高工作效率的方法
  • Wordpress414错误北京seo收费
  • net网站开发做手工简笔百度指数api
  • asp自助建站系统怎么在网上打广告
  • 铁路网站建设论文sem广告投放是做什么的
  • 2017我们一起做网站qq空间秒赞秒评网站推广
  • 网站建设发展情况指定关键词排名优化
  • 济南建设网官方网站推广普通话宣传内容
  • 企业服务行业搜索引擎优化概述
  • 怎么做电商网站百度百家号怎么赚钱
  • react node.js网站开发三一crm手机客户端下载
  • 企业网站数据库google网站登录入口
  • 重庆的网站设计公司小红书关键词优化
  • wordpress企业网站制作如何免费做网站
  • 现在自己做网站卖东西行么开发网站建设
  • dw怎么做网站免费自助建站哪个最好
  • 国家卫健委最新防疫新规定seo推广培训班
  • 国外html5 css3高端企业网站seo网站优化工具
  • 大连网站排名优化公司百度输入法下载
  • 网站建设吉金手指排名11关键词优化公司网站
  • 怎么制作网站ping工具百度平台客服人工电话
  • 建筑模板网宁波seo服务快速推广
  • 网站分类标准我想做电商
  • wordpress 函数api文件班级优化大师网页版