当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪本地部署openfire服务端      直接开始 步骤一:下载openfire源码 下载地址:http://www.igniterealtime.org/downloads/source.jsp 选中openfire_src_3_8_1.zip,下载(68.74 MB) 步骤二:eclipse导入openfire 将openfire_src_3_8_1.zip解压至eclipse工作.........
    ▪Spring Security2.0 登录(登出)成功 后置处理                     由于目前项目中使用了Spring Security 2.0.1 权限管理框架,登入成功后可能就需要处理些登录日志等等后续操作,Security 3之后只需要在form-login中添加auth.........
    ▪安装与配置windbg的symbol(符号)      本篇是新手自己写的一点心得.建议新手看看.同时希望前辈多多指教. 写这篇的动机:在网上找了一上午的windbg配置符号教程.楞是没找到详细的,都讲的太 模糊而且互相抄袭.不适合新手看.终于.........

[1]本地部署openfire服务端
    来源: 互联网  发布时间: 2013-11-19

直接开始

步骤一:下载openfire源码

下载地址:http://www.igniterealtime.org/downloads/source.jsp 选中openfire_src_3_8_1.zip,下载(68.74 MB)

步骤二:eclipse导入openfire

将openfire_src_3_8_1.zip解压至eclipse工作区域中

File->New->Java Project取消掉default location的勾选状态,并浏览选择解压好的openfire_src目录。

步骤三:ant编译

在openfire项目导入进来之后,点击Window -> Show View -> Ant然后就会显示出Ant的窗口,在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles在弹出的对话框中,展开openfire_src/build文件夹,选择build目录下的build.xml接下来双击执行openfire[default]   (带一个三角符号的那个)

步骤四:配置openfireHome

eclipse中,使用快捷键ctrl+shift+r,查找文件XMPPServer,修改openfireHome

 if (openfireHome == null) {
            try {
                //openfireHome = verifyHome("..", jiveConfigName).getCanonicalFile();
            	openfireHome = verifyHome("D:/work/eclipse3.7/workspace/openfire_src/target/openfire", jiveConfigName).getCanonicalFile();//相对路径更改为绝对路径,用于测试服务端是否可运行 dml@2013.4.15
            }
            catch (FileNotFoundException fe) {
                // Ignore.
            }
            catch (IOException ie) {
                // Ignore.
            }
        }

步骤五:设置启动项

点击openfire_src项目,在菜单栏中选择Run->Open Run Dialog (Or  Run->Run Configurations)
弹出一个对话框,在左侧菜单中右键点击Java Application,选择New创建启动配置
 
1.在Run窗口的Main选项卡中, 修改最上面Name文本框中的值,改成包含要启动的类的工程名openfire_src
(没什么用,就是一个标识,随便起名字。)
 
2.在Run窗口的Main选项卡中,
project框中填写:openfire_src
Main class 填写:org.jivesoftware.openfire.starter.ServerStarter
点击Apply应用。
 
3.点击进入Arguments选项卡,在上面那个框(Program arguments:)中填写
-D openfireHome="${workspace_loc:openfire_src}/target/openfire"
其中${workspace_loc:openfire_src} 中的 openfire_src 要根据你的项目名来进行同步修改。

eg.[-D openfireHome="D:/work/eclipse3.7/workspace/openfire_src/target/openfire"]
点击Apply应用。


 
4.点击进入Classpath选项卡,选中User Entries,然后点击右侧的Advanced按钮,会弹出一个小框,选择Add Folders,单击OK。
选择 openfire_src\src\i18n点OK 按钮将这个文件夹加入到Classpath选项卡中
选择 openfire_src\src\resources\jar 目录也加到 Classpath选项卡中
点击Apply应用。
 
5.点击进入Common选项卡中,勾选Run复选框。
点击Apply应用,run



步骤六:测试服务端是否搭建完毕

浏览器中输入http://127.0.0.1:9090


dml@2013.4.15


作者:duanml61 发表于2013-4-15 14:08:01 原文链接
阅读:72 评论:0 查看评论

    
[2]Spring Security2.0 登录(登出)成功 后置处理
    来源: 互联网  发布时间: 2013-11-19

               由于目前项目中使用了Spring Security 2.0.1 权限管理框架,登入成功后可能就需要处理些登录日志等等后续操作,Security 3之后只需要在form-login中添加authentication-success-handler-ref即可,一般是authentication-success-handler实现AuthenticationSuccessHandler的onAuthenticationSuccess方法。那在2.0下应该怎么做呢?

              关键代码 ProviderManager 类中 在 doAuthentication 授权成功的时候,创建了授权成功事件。 触发登录成功后置业务 就是 监听该事件并做相关操作。

            if (result != null) {
                sessionController.registerSuccessfulAuthentication(result);
                publishEvent(new AuthenticationSuccessEvent(result));

                return result;
            }
public abstract class AbstractAuthenticationEvent extends ApplicationEvent {
    //~ Constructors ===================================================================================================

    public AbstractAuthenticationEvent(Authentication authentication) {
        super(authentication);
    }

    //~ Methods ========================================================================================================

    /**
     * Getters for the <code>Authentication</code> request that caused the event. Also available from
     * <code>super.getSource()</code>.
     *
     * @return the authentication request
     */
    public Authentication getAuthentication() {
        return (Authentication) super.getSource();
    }
}

              由上面源代码实现授权成功事件监听器 :

public class LoginSuccessListener implements ApplicationListener {  
  
    public void onApplicationEvent(ApplicationEvent event) {  
        if (event instanceof AuthenticationSuccessEvent) {  
            AuthenticationSuccessEvent authEvent = (AuthenticationSuccessEvent) event;  
            UserDetails user = (UserDetails) authEvent.getAuthentication().getPrincipal();  
            System.out.println("模拟输出用户登录日志:[" + java.util.Calendar.getInstance().getTime() + "] " + user.getUsername());  
        }  
    }  
}  

在Spring中加入 监听器:<bean class="LoginSuccessListener"></bean> 

登出就只需要配置下就可以

<logout logout-url="/j_logout" logout-success-url="/login/login.html"/>

主要类:org.springframework.security.ui.logout.LogoutFilter、org.springframework.security.config.LogoutBeanDefinitionParser

作者:hanzhou4519 发表于2013-4-15 15:37:41 原文链接
阅读:54 评论:0 查看评论

    
[3]安装与配置windbg的symbol(符号)
    来源: 互联网  发布时间: 2013-11-19

本篇是新手自己写的一点心得.建议新手看看.同时希望前辈多多指教.

写这篇的动机:在网上找了一上午的windbg配置符号教程.楞是没找到详细的,都讲的太

模糊而且互相抄袭.不适合新手看.终于靠自己的努力弄懂了一点,呵呵写出来新手们分

享.

安装与配置windbg的symbol(符号)

第一步 是从 http://www.microsoft.com/ddk/debugging 下载最新版本的 WinDBG,

因为符号服务器二进制文件是由 WinDBG 小组开发的。您将需要检查是否有 WinDBG

更新版本,因为该小组似乎具有相当紧凑的发布日程安排,并且每隔几个月就会发布

更新版本。
第二步 双击下载的文件安装windbg.安装时注意记住安装到那里了.
第三步 windbg访问符号需要两个文件(SYMSRV.DLL 和 SYMSTORE.EXE)所以添加主path

环境变量中它们的路径进去,即:你的windbg安装目录.
操作方法:在桌面我的电脑点右键--属性--高级--环境变量,在系统变量列表框中找到

path双击,在变量值最后面加一个分号再把你的安装目录写上.点确定. 这一步是告诉

windbg那两个文件放在什么地方.
第四步 新建一个环境变量_NT_SYMBOL_PATH 值为: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols
操作方法:桌面我的电脑点右键--属性--高级--环境变量 ,点击新建,把上面的变量名

和变量值填上.这一步的意思是说告诉windbg,我的符号文件存放在c:mysymbol中(当然

其实里面什么也没有,甚至这个文件夹也不存在,不过没关系,系统找不到的话会给你创

建一个,并在上面的网址中去帮你下载符号文件放在里面)
第五步 重启计算机,再运行运行windbg 打开一个exe文件或者附加到一个进程里去, 你会看到
Symbol search path is: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols
打开c盘看到有一个新目录mysymbol,里面有windbg新下载的文件.

恭喜说明配置成功了.


作者:zhongguoren666 发表于2013-4-15 15:36:12 原文链接
阅读:57 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3