<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>群英汇博客</title> <atom:link href="http://blog.ossxp.com/feed/" rel="self" type="application/rss+xml" /><link>http://blog.ossxp.com</link> <description></description> <lastBuildDate>Sat, 20 Mar 2010 12:53:40 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>PHP中文乱码的处理</title><link>http://blog.ossxp.com/2010/03/876/</link> <comments>http://blog.ossxp.com/2010/03/876/#comments</comments> <pubDate>Sat, 20 Mar 2010 12:44:35 +0000</pubDate> <dc:creator>王胜</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[php]]></category> <category><![CDATA[中文乱码]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=876</guid> <description><![CDATA[通常来说, 出现乱码都是因为编码的不一致造成的.
对于PHP来说, 一定要保持以下三个地方的编码一致:php文件的编码
php文件的编码是指保存文件时选择的编码格式. 如选择utf-8
HTML页面里&#60;meta&#62;标签中指定的编码
此处的编码设置决定浏览器以什么编码显示该页面
&#60;meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″&#62;数据库编码
设置MySQL数据库编码的一劳永逸的办法是修改mysql的配置文件my.ini (Windows)或者my.cnf(Linux).
分别在[client]和[mysqld]小节加入 default-character-set=utf8 就OK了
如果遇到从数据库里取出数据乱码的时候, 通常要在建立链接之后设置编码,通过下面一条语句:
mysql_query("SET NAMES 'UTF8'");]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/876/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Nutch 深度的测试</title><link>http://blog.ossxp.com/2010/03/869/</link> <comments>http://blog.ossxp.com/2010/03/869/#comments</comments> <pubDate>Fri, 19 Mar 2010 01:34:17 +0000</pubDate> <dc:creator>崔 锐</dc:creator> <category><![CDATA[技术文章]]></category> <category><![CDATA[搜索引擎]]></category> <category><![CDATA[未分类]]></category> <category><![CDATA[java]]></category> <category><![CDATA[nutch]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=869</guid> <description><![CDATA[
今天下午我做了一个Nutch深度的测试。先在apache2下建立一个小网站,这个网站用Git作版本控制工具，它只有5个网页，分别是a.html,b.html,c.html,d.html,index.html。它们的链接关系index.html中有a.html,a.html有b.html,依次类推。这五个网页分别有各自的特殊字符页面
特殊字符index.html
首页a.html
三国演义b.html
西游记c.html
群英汇d.html
红楼梦这期间发生一个小插曲，我开始用nutch爬起这个小网站，结果什么都搜不到。我反复折腾，最后总算对比其他网页才知道错在哪。原因就是开始我图简单就少写了meta标签，所以总是搜不到。看来下一次要好好研究研究nutch的字符编码问题:
&#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&#62;下面正式开始测试，先写个Rakefile,这样就可以简化操作:
depth=1
task:default =&#62; [:search]
task:crawl do
sh "bin/nutch crawl myurl -dir crawl/ -depth #{depth} -threads 10"
end
task:search =&#62; [:crawl] do
sh 'rm -rf ../crawl'
sh 'mv crawl ../'
sh 'sudo /etc/init.d/tomcat6 restart'
end修改depth的值，依次从1－5，分别执行rake，搜诉网页上的特殊字符结果如下:depth
首页
三国演义
西游记
群英汇
红楼梦1
可以2
可以
可以3
可以
可以
可以4
可以
可以
可以
可以5
可以
可以
可以
可以
可以nutch的深度是依据链接的，这样设计的爬虫容易控制。]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/869/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>群英汇redmine增强版ossxp-2.0已经冻结</title><link>http://blog.ossxp.com/2010/03/860/</link> <comments>http://blog.ossxp.com/2010/03/860/#comments</comments> <pubDate>Wed, 17 Mar 2010 14:00:15 +0000</pubDate> <dc:creator>王胜</dc:creator> <category><![CDATA[新闻]]></category> <category><![CDATA[项目管理]]></category> <category><![CDATA[redmine]]></category> <category><![CDATA[SSO]]></category> <category><![CDATA[缺陷跟踪管理工具]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=860</guid> <description><![CDATA[经过两三个月的努力, 群英汇redmine增强版ossxp-2.0 已经接近尾声, 正在打包测试, 预计过两天就能和大家见面了.
ossxp-2.0版本做了大量的改进:上游版本库升级到Redmine官方的0.9.3版本
我们自己也做了相应的增强新建问题自动指定默认的目标版本
查看活动，从最后一次变更时间算起而非当前时间
同步帐号。管理员可以从 LDAP 同步帐号到 redmine
单点登录支持最新的Cosign-3.0版本(Cosign-3.0解决了以前版本钓鱼攻击的问题)大家有什么问题或者好的意见尽管在这里留言, 或者登录 http://redmine.ossxp.com/redmine/projects/show/redmine 进行交流,   我们会在第一时间给予答复和技术支持
]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/860/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>单点登录架构升级手册</title><link>http://blog.ossxp.com/2010/03/853/</link> <comments>http://blog.ossxp.com/2010/03/853/#comments</comments> <pubDate>Tue, 16 Mar 2010 09:36:36 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[SSO]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=853</guid> <description><![CDATA[CoSign 3.x 和之前的版本 CoSign 2.x 不兼容，如果贸然升级，会导致出现应用无法访问的故障。因此 CoSign 3.x 采用了另外的软件包名称，这样在使用 apt-get 升级的时候，不会“被升级”。
单点登录架构的升级，应该采取先升级应用软件，再升级单点登录架构，最后是调整配置
应用软件升级
应用软件升级后，仍然能够向下兼容老版本的单点登录架构，不会因为升级而无法登录。即新版本应用缺省即支持老版本的单点登录架构。
这样的应用有：用户管理系统，博客，邮件列表，testlink，redmine 等。
单点登录架构升级
单点登录系统的软件包名称也有所改变，以免误升级。
安装基于 CoSign v3 的单点登录系统：
$ sudo aptitude install ossxp-cosign3-daemon ossxp-cosign3-cgi ossxp-cosign3-filter
使用 aptitude 命令，会根据需要自动删除老版本的软件包：ossxp-cosign-daemon, ossxp-cosign-cgi, ossxp-cosign-filter。
更改软件配置
切换到新版本的单点登录平台，大致有三种情况：无须配置，即可以用在新版本的单点登录平台上
修改软件的配置文件，即可切换到新的单点登录系统上
需要修改数据库，不过通过一个 FALLBACK 文件，临时关闭单点登录，使用确认认证，在软件的配置界面中更改下面对部分应用的单点登录切换做一介绍
更改配置文件方式切换GOsa 的配置文件更改：增加一行 protoco=3
&#60;cosign login_url="https://weblogin.bj.ossxp.com/cgi-bin/login"
logout_url="https://weblogin.bj.ossxp.com/cgi-bin/logout"
service_name="gosa"
location="default"
protocol="3"
disabled = "false"
/&#62;Testlink 的配置文件：认证方式由 COSIGN 修改为 COSIGN3
$tlCfg-&#62;authentication['method'] = 'COSIGN3';
$tlCfg-&#62;authentication['demo_users'] = array(
"guest" =&#62; "Guest",
[...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/853/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>CoSign 3.x 介绍及与 CoSign 2.x 的协议比较</title><link>http://blog.ossxp.com/2010/03/831/</link> <comments>http://blog.ossxp.com/2010/03/831/#comments</comments> <pubDate>Tue, 16 Mar 2010 07:40:22 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[SSO]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=831</guid> <description><![CDATA[想必您已经读过 《CoSign 2.x 协议介绍》 的博客，知道了 CoSign 2.x 协议存在的一个安全漏洞，可能会被人恶意利用，通过钓鱼的手段获取用户的权限。
CoSign 3.1.0 版本已经于 2010 年 1月4日发布。在 密歇根大学的CoSign网站 上 记载的 3.1.1 的发布时间有误，笔误写成了 2009 年1月（整整提前了一年）。不过这也正常，毕竟日历刚刚由2009年翻到2010，一下子有些适应不过来。
CoSign 3.x 版本，在协议上进行了彻底的改造，解决了 CoSign 2.x 的安全漏洞：服务 Cookie 将不再由 Web 应用本身签发，而是在单点认证成功后，由单点登录服务器随机生成
单点登录随机生成的124位字串组成 ，通过 URL 重定向到 Web 应用所在服务器的特殊 url：/cosign/valid 进行校验，通过后，再设置服务 cookie。
跳转的 /cosign/valid 的 Web 地址，需要预先在单点登录服务器上配置好，不同的 服务 cookie 名称要有不同的 /cosign/valid/ 网址对应。
登录 cookie 和服务 cookie 的关联因此更为安全，因为服务 cookie 的随机数由单点登录服务器生成，而非应用本身
因此黑客在没有通过认证之前，无法得到 应用 cookie 值，也就无法通过“钓鱼”，来获得权限&#8230;CoSign [...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/831/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>CoSign 2.x 协议介绍</title><link>http://blog.ossxp.com/2010/03/824/</link> <comments>http://blog.ossxp.com/2010/03/824/#comments</comments> <pubDate>Tue, 16 Mar 2010 05:43:54 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[SSO]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=824</guid> <description><![CDATA[CoSign 是美国密歇根大学研发的一个开源软件，提供跨域支持的单点登录认证。
群英汇的单点登录架构最早源自于 CoSign 2.0。增加了多语模板支持，HTTP/HTTPS混杂目标网站的重定向，等多个方面的改进和增强。
CoSign 2.x 协议原理
在 CoSign wiki 网站上，有两个协议实现的示例图，我们截取其中一个，用以说明。图示纵向三条线，代表了单点登录中涉及到的三个实体。
中间的一条线代表浏览器客户端，是 IE，FireFox, Google Chrome 之类的啦
左边的一条线代表Web应用
右边的一条线代表单点登录服务器（CGI+Daemon）
浏览器访问 Web 应用网站，若尚未登录，则：1. 由应用网站发放 Cookie（应用cookie）；2. 重定向到单点登录服务器的登录界面
CoSign 2.x 的秘技：cookie 不是不能跨站么，CoSign 就通过 URL/Query string，将cookie的值 K/V 对传递到单点登录网站实现跨域；
在单点登录服务器的登录界面，由单点登录服务器签发cookie（登录 cookie）
登录成功后，CoSign Daemon 将登录cookie 和服务cookie两者做关联。
浏览器再次被重定向回 Web 应用网站。（浏览器会将 服务 cookie 传递给Web应用）
Web应用所在的服务器，不会因为客户端发送了一个服务 cookie 就对客户端盲从，而是要通过专有协议（CoSign 协议, 6663 端口）和 CoSign Daemon 服务器连接，查询该服务器cookie的状态
如果经 CoSign Daemon 确认 服务 cookie 有效，则 Web 应用完成后续的登录注册工作;
如果 CoSign Daemon 返回了服务 cookie [...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/824/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>单点登录版本升级：CoSign 3.x 更安全</title><link>http://blog.ossxp.com/2010/03/822/</link> <comments>http://blog.ossxp.com/2010/03/822/#comments</comments> <pubDate>Tue, 16 Mar 2010 02:58:45 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[SSO]]></category> <category><![CDATA[新闻]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=822</guid> <description><![CDATA[经过近一个月的时间的研发，群英汇的单点登录架构，正式升级到 CoSign 3.x 的新协议。CoSign 3.x 提供更安全访问，解决了 CoSign 2.x 中可能存在的“钓鱼”安全漏洞。
相关的应用：博客，用户管理，testlink，redmine，邮件列表，等应用都能够同时支持两种不同的单点登录协议。
参考：《CoSign 2.x 协议分析》
《CoSign 3.x 和 CoSign 2.x 协议对比》
《群英汇单点登录系统升级手册》]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/822/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>面向 PHP 5.3 友好的 PHP 开发</title><link>http://blog.ossxp.com/2010/03/812/</link> <comments>http://blog.ossxp.com/2010/03/812/#comments</comments> <pubDate>Sun, 14 Mar 2010 07:36:43 +0000</pubDate> <dc:creator>蒋 鑫</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[php]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=812</guid> <description><![CDATA[最近 Debian 的 testing 版本已经将 PHP 由 5.2.x 升级 为 5.3.1。PHP 5.3 开始，为了更好的向 PHP 的未来版本(PHP6) 过渡，将未来不再支持的函数标记为 DEPRECATED。在代码中使用这些函数，将毫不留情的在页面中显示警告信息：“使用了过时的函数&#8230;”，诸如此类。
那么如何面向未来，让现有的 PHP 程序平滑的向下一代 PHP 引擎过渡呢？
配置文件迁移
PHP 5.3 开始，配置文件 php.ini 中的一些配置将会在 PHP 执行时显示过时警告，这些配置将在 PHP6中不再存在，相关功能也将关闭。define_syslog_variables
register_globals
register_long_arrays
safe_mode
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase函数迁移
涉及到的主要的函数迁移如下：
删除函数 define_syslog_variables 引用删除对函数 define_syslog_variables 的引用
将变量 $LOG_ERR, $LOG_USER 等用常量 LOG_USER, LOG_USER, &#8230; 替代ereg, eregi 函数用 preg_match 函数替代这几个函数的函数声明
int  ereg (  string  $pattern ,  string  $string [...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/812/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>TopGit的使用技巧 (3)</title><link>http://blog.ossxp.com/2010/03/802/</link> <comments>http://blog.ossxp.com/2010/03/802/#comments</comments> <pubDate>Wed, 10 Mar 2010 13:14:46 +0000</pubDate> <dc:creator>王胜</dc:creator> <category><![CDATA[Git]]></category> <category><![CDATA[topgit]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=802</guid> <description><![CDATA[含有分支依赖且产生冲突的update操作创建一个Git版本库demo1
$ git clone demo1
$ cd demo1
$ vi sum.py      #编写一个求和的函数
$ cat sum.py
def sum(a,b):
return a + bprint "sum(1+2)=",sum(1,2)
$ git add .
$ git ci -m "init respoitory"
创建一个TopGit分支
$ tg create t/hack1
$ vi sum.py    #修改sum.py的形参
$ cat sum.py
def sum(num1,num2):
return num1 + num2print "sum(1+2)=",sum(1,2)
$ git ci -am "modify sum function's parameter"
$ tg summary
&#62;       t/hack1                         [PATCH] t/hack1
$ git rev-parse master top-bases/t/hack1 [...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/802/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>TopGit的使用技巧 (2)</title><link>http://blog.ossxp.com/2010/03/800/</link> <comments>http://blog.ossxp.com/2010/03/800/#comments</comments> <pubDate>Wed, 10 Mar 2010 13:07:30 +0000</pubDate> <dc:creator>王胜</dc:creator> <category><![CDATA[Git]]></category> <category><![CDATA[topgit]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=800</guid> <description><![CDATA[含有冲突的update操作创建一个Git版本库demo1
$ git clone demo1
$ cd demo1
$ vi sum.py #编写一个求和的函数
$ cat sum.py
def sum(a,b):
return a + bprint "sum(1+2)=",sum(1,2)
$ git add .
$ git ci -m "init repository"
创建一个TopGit分支
$ tg create t/hack1
$ vi sum.py    #修改sum.py的形参
$ cat sum.py
def sum(num1,num2):
return num1 + num2print "sum(1+2)=",sum(1,2)
$ git ci -am "modify sum function's parameter"
$ tg summary        #查看当前TopGit分支的状态
&#62;       t/hack1                         [PATCH] t/hack1
$ git rev-parse master top-bases/t/hack1 t/hack1
905d75e8cb4392149b0c74b03c53e5e6fdcac3cf
905d75e8cb4392149b0c74b03c53e5e6fdcac3cf
ebd8259b997ef79a423fd80be0748be48db4bdd2
修改master,致使 [...]]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/03/800/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 11/15 queries in 0.005 seconds using disk

Served from: blog.ossxp.com @ 2010-03-20 21:57:22 -->