`

bboss会话共享demo使用指南

阅读更多
为了方便应用系统集成bboss会话共享功能,准备了两个会话共享demo工程,本文介绍他们的使用和部署方法:
session工程 ----如果只需要session共享功能,则整合这个工程中的配置文件和jar包即可
sessionmonitor工程----如果需要session共享以及监控功能,则整合这个工程中的配置文件和jar包即可

本文包含以下三部分内容:
一、session工程使用指南
二、sessionmonitor工程使用指南
三、基于session和sessionmonitor实现跨应用会话共享使用指南

bboss session集成权威指南
https://my.oschina.net/bboss/blog/758871

会话共享的工程全部采用gradle构建,security构建和demo运行请参考文档:
bboss session版本构建和demo部署运行介绍
源码下载:
git clone -b master --depth 1 https://github.com/bbossgroups/sessiondemo.git
本文只介绍具体的配置和使用。

一、session工程使用指南
session工程包含session功能验证sessiontest.jsp文件,会话共享需要的所有配置文件和最小依赖jar包,
工程的结构说明:
/session/resources/org/frameworkset/soa/serialconf.xml --序列化插件配置文件,类别名配置
/session/resources/mongodb.xml   --mongodb配置文件
/session/resources/sessionconf.xml --session配置文件
/session/session.xml    --session工程web部署文件
/session/WebRoot/sessiontest.jsp  --session功能验证文件
/session/WebRoot/WEB-INF/web.xml   --配置session共享拦截过滤器
/session/WebRoot/WEB-INF/lib      --会话共享最小依赖jar文件存放目录


2.参考以下文档配置/resources/mongodb.xml中的mongodb连接
http://yin-bp.iteye.com/blog/2064662
参考其中的章节【6.mongodb客户端配置 】
3.部署和发布war版本
进入命令行模式
切换到session对应的目录,执行指令:
gradle war

对应的session-5.0.1.war(5.0.1为版本号,以实际为准)包在session\build\libs目录下可以找到。


sessiontest.jsp文件内容请阅读:
https://github.com/bbossgroups/security/blob/master/session/WebRoot/sessiontest.jsp
二、sessionmonitor工程使用指南
sessionmonitor工程包含session功能验证jsp页面和会话共享监控功能,
工程的结构说明:
/sessionmonitor/resources/org/frameworkset/soa/serialconf.xml --序列化插件配置文件,类别名配置
/sessionmonitor/resources/mongodb.xml   --mongodb配置文件
/sessionmonitor/resources/sessionconf.xml --session配置文件
/sessionmonitor/sessionmonitor.xml    --sessionmonitor工程web部署文件
/sessionmonitor/WebRoot/sessiontest.jsp  --session功能验证文件
/sessionmonitor/WebRoot/WEB-INF/web.xml   --配置session共享拦截过滤器
/sessionmonitor/WebRoot/WEB-INF/lib      --会话共享及监控最小依赖jar文件存放目录
/sessionmonitor/WebRoot/session/sessionManager/sessionManager.jsp          --session监控jsp页面入口地址
/sessionmonitor/WebRoot/session/sessionManager/sessionList.jsp  --session监控session 列表页面
/sessionmonitor/WebRoot/session/sessionManager/viewSessionInfo.jsp  --sesion详细信
息查看页面
/sessionmonitor/src  --监控源码程序


2.参考以下文档配置/resources/mongodb.xml中的mongodb连接
http://yin-bp.iteye.com/blog/2064662
参考其中的章节【6.mongodb客户端配置 】
3.3.部署和发布war版本
进入命令行模式
切换到sessionmonitor目录,执行指令:
gradle war

对应的sessionmonitor-5.0.1.war(5.0.1为版本号,以实际为准)包在sessionmonitor\build\libs目录下可以找到。



三、基于session和sessionmonitor实现跨应用会话共享使用指南
前两部分介绍了session和sessionmonitor两个工程的使用和部署方法,我们验证了开启bboss会话机制后,session的操作方法和方式以及展示了session的监控功能,本节介绍基于session和sessionmonitor如何实现跨应用会话共享。
首先我们已经在两个工程(session和sessionmonitor)中准备好了跨站共享会话的配置文件:
/session/resources/sessionconf.crossapp.xml
[url=https://github.com/bbossgroups/security/blob/master/sessionmonitor/resources/sessionconf.crossapp.xml[/url]

接下来我们需要将:
文件/session/resources/sessionconf.crossapp.xml内容拷贝到/session/resources/sessionconf.xml文件中替换原来的内容
文件/sessionmonitor/resources/sessionconf.crossapp.xml内容拷贝到/sessionmonitor/resources/sessionconf.xml
这样我们的即可在session和sessionmonitor两个应用间共享会话了。这里稍微说明一下跨应用共享会话相关的几个配置:
appcode被指定为bboss,两个应用的的会话将被统一存入会话表bboss_sessions,appcode可以自己定义,这里是bboss。
f:domain被统一指定为127.0.0.1,曾尝试使用localhost但是不能正确工作,所以改为127.0.0.1,可以根据实际情况改为域名或者实际的ip,如果各应用的子域名不同,则指定为同根域名即可,例如有两个应用的域名分别为:
app1.sina.com.cn
app2.sina.com.cn
那么f:domain可指定为sina.com.cn
f:shareSessionAttrs被指定为userAccount,也就是说在两个应用会话间只共享属性userAccount,这里可以根据实际情况修改,如果有多个共享属性请用逗号分隔即可,没有出现在这个清单中的属性都是应用私有的会话数据。

在sessionconf.xml中配置了两个需要共享session的应用
/session/resources/sessionconf.xml中相关内容为:
  <property class="org.frameworkset.security.session.domain.App"
				            	f:path="/session" 
                                                f:currentApp="true"
				            	f:attributeNamespace="session_bboss_com_cn"  
				            	init-method="init"
				            />				        
				        <property class="org.frameworkset.security.session.domain.App"				            	
				            	f:path="/sessionmonitor"	
                                                f:currentApp="false"
				            	f:attributeNamespace="sessionmonitor_bboss_com_cn"
				            	init-method="init"
				            />


/sessionmonitor/resources/sessionconf.xml中相关内容为:
  <property class="org.frameworkset.security.session.domain.App"
				            	f:path="/session" 
                                                f:currentApp="false"
				            	f:attributeNamespace="session_bboss_com_cn"  
				            	init-method="init"
				            />				        
				        <property class="org.frameworkset.security.session.domain.App"				            	
				            	f:path="/sessionmonitor"	
                                                f:currentApp="true"
				            	f:attributeNamespace="sessionmonitor_bboss_com_cn"
				            	init-method="init"
				            />


其实我们对比两个sessionconf.xml配置文件,发现他们中唯一不同的两个地方之一就是f:currentApp的值,在相应的sessionconf.xml文件中都将对应本应用的那个f:currentApp设置为true,另外一个不同点就是下面的attributeNamespace配置。
f:attributeNamespace 设置应用私有会话属性存储命名空间,在/session/resources/sessionconf.xml中被设置为session_bboss_com_cn
在/sessionmonitor/resources/sessionconf.xml中被设置为sessionmonitor_bboss_com_cn

说明一下跨应用会话共享需要用到两个jsp页面
/session/WebRoot/sessiontest.jsp
/sessionmonitor/WebRoot/sessiontest.jsp
在这两个页面中展示了几个私有属性($a.b.c,local,testVO)的操作和共享属性(userAccount)的操作。
具体的操作演示
在sessionmonitor应用多设置了一个私有属性privateAttr,然后在session应用中获取这个sessionmonitor的私有属性privateAttr,发现是获取不到这个值的;我们在sessionmonitor设置了$a.b.c属性后立马删除,而session中保留$a.b.c属性,可以在监控界面查看session还有这个属性而sessionmonitor中已经没有了;我们在session工程中设置共享属性userAccount的值为john,然后可以在sessionmonitor中能够正确地获取到共享属性userAccount的值并输出到页面上。

配置完毕后,切换到命令行,分别在session和sessionmonitor两个目录下执行:
gradle war

然后将两个文件
session\build\libs\session-5.0.1.war
sessionmonitor\build\libs\sessionmonitor-5.0.1.war
拷贝到tomcat/webapps目录下,然后启动tomcat看效果。
实际效果
tomcat启动后,首先在浏览中打开以下地址:
http://127.0.0.1:8080/session/
可以看到运行效果:



接下来点击页面中最下方的sessionmonitor上的链接,会打开第二个应用sessiontest.jsp页面,可以看到运行的实际效果:



上面两个页面都打开后,可以在一个新窗口中输入以下地址,进入监控页面查看两个应用间共享的会话数据情况,可以发现两个应用公用了一个会话对象:
http://127.0.0.1:8080/sessionmonitor/session/sessionManager/sessionManager.page



再点击会话记录后面的详情按钮,可以查看这个会话数据的详细情况,私有数据和共享数据全部都可以在监控中看到:



session id cookiename命名约定请参考文档中的章节【10.session id cookiename命名约定】
http://yin-bp.iteye.com/blog/2064662

到此,三个部分介绍完毕。
  • 大小: 20.8 KB
  • 大小: 25.3 KB
  • 大小: 42.4 KB
  • 大小: 82.8 KB
分享到:
评论
11 楼 yin_bp 2015-09-28  
tengyizu 写道
请问 在配置 f:domain 时候 我的应用分别在192.168.1.22和192.168.1.15 这个实际的ip地址怎么来配置呢?


如果192.168.1.22和192.168.1.15 分别部署了两个不同的应用,这时要做session共享,就需要使用到跨域的会话共享机制,这样这两台机器必须分配根域名相同的两个域名,然后参考文档中介绍的跨域配置进行配置,f:domain指定为根域名即可,例如:
根域名为:
bboss.com

192.168.1.22机器分配的子域名为:
d22.bboss.com

192.168.1.15机器分配的子域名为:
d15.bboss.com

那么f:domain做以下设置即可:
f:domain="bboss.com"
10 楼 yin_bp 2015-09-28  
tengyizu 写道
请问 在配置 f:domain 时候 我的应用分别在192.168.1.22和192.168.1.15 这个实际的ip地址怎么来配置呢?

如果这两个地址是集群节点地址的话,那么不需要使用跨域session机制,只要使用集群session共享机制即可,这样不需要配置f:domain这个属性了,我们只需要使用apache http server或者ngix或者haproxy或者lvs在前端通过统一的ip地址负载分发请求到两个实际的机器节点即可。下文时介绍apache http server负载配置的文档:
http://yin-bp.iteye.com/blog/2217534



9 楼 tengyizu 2015-09-28  
请问 在配置 f:domain 时候 我的应用分别在192.168.1.22和192.168.1.15 这个实际的ip地址怎么来配置呢?
8 楼 yin_bp 2015-09-25  
tengyizu 写道
yin_bp 写道
tengyizu 写道
楼主请问一下,怎么不支持google 浏览器,测试了一下  之间是不共享的,只有在ie8下是共享的,是不是哪里配置有问题?


没有特殊的配置,只要按照demo文档中的步骤做,应该是没有问题的


最后我发现localhost导致的 修改为127.0.0.1 就可以不同浏览器的影响了


我在文档章节【三、基于session和sessionmonitor实现跨应用会话共享使用指南 】中明确说明了的呢:
f:domain被统一指定为127.0.0.1,曾尝试使用localhost但是不能正确工作,所以改为127.0.0.1,可以根据实际情况改为域名或者实际的ip,如果各应用的子域名不同,则指定为同根域名即可,例如有两个应用的域名分别为:
app1.sina.com.cn
app2.sina.com.cn
那么f:domain可指定为sina.com.cn
7 楼 tengyizu 2015-09-25  
yin_bp 写道
tengyizu 写道
楼主请问一下,怎么不支持google 浏览器,测试了一下  之间是不共享的,只有在ie8下是共享的,是不是哪里配置有问题?


没有特殊的配置,只要按照demo文档中的步骤做,应该是没有问题的


最后我发现localhost导致的 修改为127.0.0.1 就可以不同浏览器的影响了
6 楼 yin_bp 2015-09-24  
tengyizu 写道
楼主请问一下,怎么不支持google 浏览器,测试了一下  之间是不共享的,只有在ie8下是共享的,是不是哪里配置有问题?


没有特殊的配置,只要按照demo文档中的步骤做,应该是没有问题的
5 楼 yin_bp 2015-09-24  
tengyizu 写道
楼主请问一下,怎么不支持google 浏览器,测试了一下  之间是不共享的,只有在ie8下是共享的,是不是哪里配置有问题?


可以的,这个和浏览无关,google,ie,火狐都没问题的,集群session共享,跨域session共享都没有问题的
4 楼 tengyizu 2015-09-24  
楼主请问一下,怎么不支持google 浏览器,测试了一下  之间是不共享的,只有在ie8下是共享的,是不是哪里配置有问题?
3 楼 hotsmile 2015-08-02  
不错,挺好的
2 楼 yin_bp 2015-07-28  
mongodb版本目前支持2.6.3
1 楼 csust 2014-07-02  
[b][/b][u][/u]
[img][/img]   2222222222222222

相关推荐

    基于JavaScript和CSS的bboss会话共享demo设计源码

    本项目是基于JavaScript和CSS开发的bboss会话共享demo,包含421个文件,其中包括114个GIF图像文件、111个JPG图像文件、88个PNG图像文件、29个JavaScript脚本文件、20个CSS样式表文件、18个XML配置文件、12个JSP页面...

    bboss会话共享培训文档

    bboss会话共享采用MongoDB作为存储后端,使用增量模式修改会话属性,提供高效的数据存储和访问。数据的序列化采用XML格式,目的是为了良好的可读性,并且易于监控。bboss兼容Servlet 2/3规范,能够与现有的应用系统...

    bboss会话共享培训文档分享

    bbosssession是一个用于集群环境中实现会话共享的解决方案,它提供了第四代集群会话管理的完整实现,与之前的会话管理方式相比,有着诸多优势和特点。本培训文档将介绍集群session管理的发展历史、bbosssession的...

    bboss mvcdemo 下载地址

    在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...

    基于Java和Shell的bboss session framework跨域集群节点会话共享与监控设计源码

    该项目是一款基于Java和Shell语言的bboss session framework设计源码,专注于实现跨域集群节点之间的会话共享,并具备良好的会话监控和数据统计功能。该框架包含222个文件,包括164个Java源文件、14个XML配置文件、6...

    bboss session共享培训ppt

    集群会话共享,跨容器跨平台,跨站跨应用会话共享及SSO,高效,配置简单,提供实用的会话统计监控和会话集中管理功能(会话查询,会话删除,会话属性数据查看等等)

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    elasticsearch:基于springboot整合bboss es实现的demo项目

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss ioc配置文件中使用外部属性文件介绍

    除了`&lt;property-placeholder&gt;`标签,BBoss还支持使用`&lt;context:property-placeholder&gt;`标签,它是Spring框架的一部分,也可以与BBoss集成使用。这种方式的配置类似,但提供了更多的选项,如默认值、忽略未定义的属性...

    企业级J2EE开源框架bboss

    6. **安全控制**:BBoss提供了用户认证和授权机制,包括基于角色的访问控制(RBAC)、会话管理以及CSRF防护等,保障系统安全性。 7. **缓存支持**:集成多种缓存技术,如Ehcache、Redis等,优化数据读取性能,减轻...

    bboss 安全认证过滤器功能介绍

    6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...

    bboss+es基本操作示例.zip

    在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...

    bboss:bboss是一个j2ee框架,包括aopioc,mvc,持久性,taglib,rpc,事件,bean-xml可序列化的,redis,kafka,mongodb等。

    bboss会话共享源码 github托管地址: svn下载地址 bboss演示源码 github托管地址: svn下载地址 基于bboss的开源工作流Activiti5.12 github托管地址 svn下载地址 自动代码生成框架github源码托管地址和svn下载...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    J2EE企业级开源框架bboss v5.0.6.8

    bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

Global site tag (gtag.js) - Google Analytics