<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>晓风听雨轩</title>
		<link>http://suddymail.org//</link>
		<description>时光流逝，岁月飞沙，记录下的，才是真实的脚印~</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Mon, 06 Sep 2010 22:59:37 +0000</lastBuildDate>
		<ttl></ttl>
		<item>
			<guid>http://suddymail.org//show-214-1.html</guid>
			<title>echofon diyurl 版本 for 4.0 b3pre</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>2010-07-26 17：49更新，修复不使用api的时候的异常问题。<br />
如果不需要使用api，请直接留空api的配置即可。</p>
<p>基于echofon 1.9.6.5RC1 修改而来，支持最新的firefox 4.0 b3pre 每夜版。</p><br /><br /><a href="http://suddymail.org//show-214-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-214-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2010-07-26 11:07</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-207-1.html</guid>
			<title>使用except转发sqlplus的demo</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>之后拿来YY web版的客户端或者加上权限控制啥的直接抛弃命令行都可以的哈。<br />
记录一下。顺便痛恨expect的语法。</p><br /><br /><a href="http://suddymail.org//show-207-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-207-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2010-01-14 21:50</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-200-1.html</guid>
			<title>[zz]linux中的信号量详解</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>工作需要用到这个，顺便收集一份列表以备后查。</p><br /><br /><a href="http://suddymail.org//show-200-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-200-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-10-26 14:03</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-199-1.html</guid>
			<title>fvck urllib</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>Python的比较雷人的urllib</p><br /><br /><a href="http://suddymail.org//show-199-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-199-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-10-13 15:43</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-198-1.html</guid>
			<title>用山寨的方式让twiki支持客户端证书登录</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>twiki官方站上有一个插件：X509UserPlugin，看说明是用来支持证书登录的。不过鼓捣了半天还是没成效，直接报错说viewauth没权限。几天还是没啥进展，直接火大，决定山寨解决。</p>
<p>首先配置twiki的服务器支持SSL，用SSL来获取客户端证书并验证客户端证书的有效性。</p>
<p>与twiki相关配置如下：</p>
<p>[code]</p>
<p>twiki.conf:</p>
<p>SSLCACertificateFile /etc/pki/tls/certs/test.crt<br />
SSLOptions +FakeBasicAuth +StrictRequire +OptRenegotiate<br />
SSLVerifyClient require<br />
SSLVerifydepth 1</p>
<p>[/code]</p>
<p>其中 test.crt为签发客户端证书的有效根证书，用于在ssl中验证客户端证书的有效性。</p>
<p>然后就是twiki本身。由于twiki是后台使用perl实现的无数据库wiki，本身的用户权限关系比较简单，直接是用当前的用户名和保存的权限列表比较，在里面则有权限，所以只需要验证的时候判断是来自证书的用户名并且ssl证书验证成功（废话一句，ssl通过数据才会到达程序处理），则跳过密码验证即可。</p>
<p>twiki的登录管理为：./lib/TWiki/LoginManager, 在此目录下新建一个perl的LoginManager 就可以通过https://twikisite/bin/configure 设置登录使用该LoginManager进行。</p>
<p>这里因为希望实现证书登录和密码登录并存，使用原生的TemplateLogin.pm复制一份进行修改满足需要（cp TemplateLogin.pm X509TemplateLogin.pm &amp; 新文件的权限和属主与原文件相同）。</p>
<p>里面修改的关键代码如下：</p>
<p>[code]</p>
<p>---+ package TWiki::LoginManager::X509TemplateLogin</p>
<p>[/code][code]</p>
<p>package TWiki::LoginManager::X509TemplateLogin;</p>
<p>[/code][code]</p>
<p>my $origurl = $query-&gt;param( 'origurl' );<br />
# 以下为修改部分，判断是否为证书登录，是则用户名取用证书中的用户名：DN_CN<br />
my $loginName = &quot;&quot;;<br />
if($ENV{'SSL_CLIENT_VERIFY'} &amp;&amp; $ENV{'SSL_CLIENT_VERIFY'} eq 'SUCCESS'){<br />
&nbsp;&nbsp;&nbsp; $loginName = $ENV{'SSL_CLIENT_S_DN_CN'};<br />
}else{<br />
&nbsp;&nbsp;&nbsp; $loginName = $query-&gt;param( 'username' );<br />
}</p>
<p>[/code][code]</p>
<p>if( $loginName ) {<br />
#以下为修改部分，判断如果是证书登录，则跳过密码验证并且认证结果为成功。<br />
#由于ssl已经确认了证书的合法性，此处不需要重复进行证书合法性验证。<br />
my $validation;<br />
if($ENV{'SSL_CLIENT_VERIFY'} &amp;&amp; $ENV{'SSL_CLIENT_VERIFY'} eq 'SUCCESS'){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $validation = 1;<br />
}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $validation = $users-&gt;checkPassword( $loginName, $loginPass );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $error = $users-&gt;passwordError();<br />
}</p>
<p>[/code]</p>
<p>然后去http://twikisite/bin/configure 中修改 security setup中的LoginManager为TWiki::LoginManager::X509TemplateLogin，保存。</p>
<p>使用方式：</p>
<p>使用https://twikisite/ 进行访问，如果本地有合法的客户端证书，则点击登录按钮后直接用证书身份登入wiki.权限设置使用证书中的DN_CN名作为用户名即可。</p>
<p>不足：如果希望使用原有的用户名密码登录。目前只能通过http://twikisite/访问进行。暂时还没有更好的想法。</p>
<p>有不足之处或者对证书和密码并存登录twiki有更好的想法，请诸位多多留言指点。。</p>]]></description>
			<link>http://suddymail.org//show-198-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-10-06 17:37</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-197-1.html</guid>
			<title>python类的两种静态方法申明方式</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>一种看起来比较优雅：<br />
e.g.<br />
[code]<br />
12&nbsp;&nbsp;&nbsp;&nbsp; @staticmethod<br />
13&nbsp;&nbsp;&nbsp;&nbsp; def init(host,databasename):<br />
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return pg.connect(dbname=''+databasename+'',host=''+host+'''')<br />
[/code]<br />
即在方法名前加入@staticmethod做修饰即可，不过这种方式仅支持python2.4及以上的版本<br />
<br />
在2.3中，则要用一种比较猥琐的写法了<br />
e.g.<br />
[code]<br />
13&nbsp;&nbsp;&nbsp;&nbsp; def init(host,databasename):<br />
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return pg.connect(dbname=''+databasename+'',host=''+host+'''')<br />
15&nbsp;&nbsp;&nbsp;&nbsp; init = staticmethod(init)<br />
[/code]<br />
即通过手工的用staticmethod函数对原先的自定义函数进行一个包装来进行。</p>]]></description>
			<link>http://suddymail.org//show-197-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-09-07 02:38</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-187-1.html</guid>
			<title>编译TortoiseSVN</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>因为Merge功能的快捷键和系统上dell默认的音量控制冲突。没办法改，手工修改TortoiseSVN代码，重新编译了次解决。<br />
记录下碰到的一些问题和一些注意的点。</p><br /><br /><a href="http://suddymail.org//show-187-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-187-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-03-21 17:13</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-182-1.html</guid>
			<title>XSLT的一些笔记</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>Security by XSLT Transform</p><br /><br /><a href="http://suddymail.org//show-182-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-182-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-02-15 14:07</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-180-1.html</guid>
			<title>使用python脚本自动化备份log</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>最近每月一次的服务器log备份比较郁闷。今天终于写了个脚本来实现，用crontab来调用。解脱了。</p>
<p>废话不说了。直接上代码。</p><br /><br /><a href="http://suddymail.org//show-180-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-180-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2009-02-10 18:10</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-170-1.html</guid>
			<title>一个爬log的python程序</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>文本的时间里面查询时间段没啥好的想法了。<br />
只好比较挫的爬到数据库里查</p><br /><br /><a href="http://suddymail.org//show-170-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-170-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-11-22 13:38</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-165-1.html</guid>
			<title>Greasemonkey 脚本学习</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>原来的目的很简单，通过用户脚本来操纵修改页面某些东东。<br />
<br />
主要是hook页面中的一些javascript，排除在ff下不能用的一些函数和检测手段。</p>
<p>&nbsp;</p><br /><br /><a href="http://suddymail.org//show-165-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-165-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-08-29 10:31</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-164-1.html</guid>
			<title>改造sa实现不同镜像分享COOKIE</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>简单的想让各个镜像只需要其中任意一个登录就能共享cookie。</p><br /><br /><a href="http://suddymail.org//show-164-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-164-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-08-19 10:46</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-157-1.html</guid>
			<title>vim的一些东东</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>不想整理了，先堆着吧，感觉，很强，很暴力的VIM哈<br />
<br />
res:<br />
<br />
helptags XXXX\XXX\XXX\vimfiles\doc 导入DOC<br />
ctags -R 生成tags<br />
:set tags=/home/wooin/vim71/tags 把tags加载入VIM中<br />
:Tlist 进入Tlist模式<br />
<br />
cscope -Rbq<br />
:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71 加入索引，注意前后两句<br />
:cs add cscope.out 加入索引文件，<br />
:cs find g vim_strsave 查找函数的定义<br />
:cs find c vim_strsave 查找函数在哪里被使用<br />
:cw 打开quick fix窗口，查看其他调用的地方<br />
<br />
此时，运行<br />
:cs show 就能看到是否增加成功<br />
:cs f g main 查找main函数相关代码<br />
:cs h帮助<br />
ctrl + \ g 对应到 :cs f g&nbsp;&nbsp; 查询当前光标下的符号的定义的地方<br />
ctrl + \ c 对应到 :cs f c&nbsp;&nbsp; 查询当前函数被调用的地方<br />
ctrl + t 跳回到上一个跳转的地方<br />
<br />
mm 一行打标签</p>]]></description>
			<link>http://suddymail.org//show-157-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-06-16 15:16</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-156-1.html</guid>
			<title>无聊弄了个关显示器电源的东东</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>D610没热键只关显示器电源的，有些时候还慢不方便的。<br />
随手写了个。<br />
两行代码搞定。</p><br /><br /><a href="http://suddymail.org//show-156-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-156-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-05-12 10:34</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-155-1.html</guid>
			<title>FireFox plugin/extensions （一）</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>目标是做个插件，先从扩展开始吧</p><br /><br /><a href="http://suddymail.org//show-155-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-155-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-05-06 23:08</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-151-1.html</guid>
			<title>Rose 7.0 SmartHeap Library error 屏蔽</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>Rose 7.0还好似满好用的，<br />
唯一的遗憾就是关闭都会出那个经典错误：</p>
<p>SmartHeap Library <br />
MEM_BAD_POINTER <br />
<br />
网上找个个屏蔽的方法，覆盖rose文件夹下SHW32.DLL为新的版本，附件提供的SHW32.DLL版本号为：7.4.2.17，来自csdn</p>
<p>在xp sp2上测试通过</p>
<p>&nbsp;</p>
<p>2008-07-29ps: 有人求license文件，偶就顺便补上吧，忘了来源了，应该在教育网内某个角落寻觅到的。授权到2020年为止。</p><br /><br /><b>附件: </b><a href="http://suddymail.org//attachment.php?id=60" target="_blank">shw32.rar</a> (51.94 K, 下载次数:1342)<br /><br /><b>附件: </b><a href="http://suddymail.org//attachment.php?id=67" target="_blank">license.rar</a> (1.72 K, 下载次数:292)]]></description>
			<link>http://suddymail.org//show-151-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-04-14 10:39</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-147-1.html</guid>
			<title>改造sablog实现自动选择最快镜像</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>网络上的实现方式不外乎建立个单独的php文件，然后点击自动选择，通过速度判断来实现，自己觉的还是比较不方便了点，改造了下程序和模板，实现首次登录的时候自动选择最快的镜像，对用户来说还是透明的，唯一的不足就是如果用户直接访问某个链接的时候无法选择镜像后访问。暂时先这样吧。</p><br /><br /><a href="http://suddymail.org//show-147-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-147-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-02-17 08:46</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-141-1.html</guid>
			<title>[ZZ]JavaMail API详解</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>奇怪的是api手册上查不到javax.mail?<br />
百度到了一篇，先转回来收藏下。</p><br /><br /><a href="http://suddymail.org//show-141-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-141-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2008-01-01 22:29</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-140-1.html</guid>
			<title>使用vba控制outlook发送邮件</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>搞定了邮件附件，接着搞fso。HOHO。</p><br /><br /><a href="http://suddymail.org//show-140-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-140-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2007-12-28 17:26</pubDate>
		</item>
		<item>
			<guid>http://suddymail.org//show-138-1.html</guid>
			<title>idl文件的编译及相关</title>
			<author>╰☆往事如风</author>
			<description><![CDATA[<p>昨天折腾想把一个idl文件编译成.h文件，GG了几个方法在我机器上实验好像都失败了，后面还是直接命令行下midl OK了，记录下一些东东</p><br /><br /><a href="http://suddymail.org//show-138-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://suddymail.org//show-138-1.html</link>
			<category domain="http://suddymail.org//category-2-1.html">编程技术</category>
			<pubDate>2007-12-26 13:00</pubDate>
		</item>
	</channel>
</rss>
