<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>netfly</title>
    <description></description>
    <link>http://netfly.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>mule 源代码编译指南</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/222123" style="color:red;">http://netfly.javaeye.com/blog/222123</a>&nbsp;
          发表时间: 2008年07月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在网上看到有些人mule 源代码编译不过，特提供一下帮助，希望各有志于ESB研究的人都来热闹热闹。</p>
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/222123#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 31 Jul 2008 11:53:29 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/222123</link>
        <guid>http://netfly.javaeye.com/blog/222123</guid>
      </item>
      <item>
        <title>美资企业高薪诚聘.net开发人员</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/144019" style="color:red;">http://netfly.javaeye.com/blog/144019</a>&nbsp;
          发表时间: 2007年11月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial"><font face="Arial"><a href="http://www.mastersystem.com">http://www.mastersystem.com</a></font></font></p>
<p>Master System is the developer of Office Master System<sup>TM</sup> (OMS.) OMS is the pre-eminent business software solution for the exclusive use of more than 4,000 wholesale distributor companies around the world. Since 1987 Master System has been at the forefront of continuous and never ending development of our OMS and eMasterTM business software solutions for wholesale distributors. </p>
<p>Master Systems&rsquo; OMS is a world-class inventory control with integrated accounting application that was the &ldquo;first&rdquo; to fully-integrate the wholesale distributor&rsquo;s back-office via the Internet with eCommerce and Business-to-Business. Today, OMS remains unmatched for its ease-of-use, ease-of-deployment, customization, and low cost of ownership with versatility and adaptability that delivers significant gains in performance and efficiency. </p>
<p><font face="Arial">职位要求<br />
1、二年以上WEB开发经验，至少在两个项目中担当核心开发人员或设计人员；<br />
2、精通C#、ASP.NET、XML，对 .Net Framework 有足够认识，熟悉分布式应用开发者优先；<br />
3、熟练掌握MS SQLServer / ORACLE 的应用开发；<br />
4、有良好的页面排版布局能力；<br />
5、具备独立或指导开发大型WEB项目的能力；<br />
6、良好的团队合作能力；<br />
7、精通atlas<br />
8、懂ERP者更好；<br />
9、心态良好，有较强的学习能力和表达沟通能力，热爱软件开发；</font></p>
<p>&nbsp;</p>
<p>联系电话：</p>
<p>50277627－26 樊小姐</p>
<p>公司地址：上海市张江高科技园区春晓路149号信息楼3楼303</p>
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/144019#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 27 Nov 2007 17:02:59 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/144019</link>
        <guid>http://netfly.javaeye.com/blog/144019</guid>
      </item>
      <item>
        <title>Liferay 使用手册</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/108092" style="color:red;">http://netfly.javaeye.com/blog/108092</a>&nbsp;
          发表时间: 2007年08月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1.我使用的是jdk1.4.2</p>
<p>2.这是最简单、最快速、最傻瓜的使用指南</p>
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/108092#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 02 Aug 2007 09:26:02 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/108092</link>
        <guid>http://netfly.javaeye.com/blog/108092</guid>
      </item>
      <item>
        <title>web services 传递xml document问题</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/49476" style="color:red;">http://netfly.javaeye.com/blog/49476</a>&nbsp;
          发表时间: 2007年01月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我写了一个java调用.net web services，.net 返回的是一个xml document，我曾经采用axis来自动生成客户端的形式成功调用过，但是axis自动生成的代码可读性奇差，简直惨不忍睹。<br /><br />所以我想有没有什么简化操作，自己做了点尝试，发现返回类型转换总是不成功，谁能，不胜感激！<br /><pre name="code" class="java">
import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.w3c.dom.Document;

/**
 * @author Liujj
 * Date 2007-1-18 &lt;br>
 * Description: &lt;br>
 * TestUserService
 */
public class TestUserService {
	  /**
	    * @param args
	    */
	  public static void main(String[] args) {
	      // TODO Auto-generated method stub
	      try {
//	        String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo";
//	        String nameSpaceUri = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx";
	        String wsdlUrl = "http://192.168.5.149/Centralism_XH10/webservice/UserService.asmx?op=getUserInfo";
	        String soapActionURI = "http://research.beyondbit.com/Centralism/getUserInfo";
	        
	        // 创建调用对象
	        Service service = new Service();
	        Call call = (Call) service.createCall();
	        
	        // 调用getUserInfo
	        System.out.println(">>>getUserInfo");
	        
	        //xmlns
	        call.setOperationName(new QName("http://research.beyondbit.com/Centralism", "getUserInfo"));
	        call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
			
	        //parameter & return
	        call.addParameter("ldapStr", org.apache.axis.encoding.XMLType.XSD_STRING,
					javax.xml.rpc.ParameterMode.IN);
			call.addParameter("attrNames", org.apache.axis.encoding.XMLType.XSD_STRING,
					javax.xml.rpc.ParameterMode.IN);
			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_ANY);
			
			//set soap action
			call.setUseSOAPAction(true);
			call.setSOAPActionURI(soapActionURI);
	        

			//call
			String ret = (String) call.invoke(new Object[] { "d61b29051cd534458c0cdd16bdab77aa" , "" });
	        
	        System.out.println("return value is " + ret);
	        
	      } catch (Exception e) {
	        e.printStackTrace();
	      }
	  }

}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/49476#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 23 Jan 2007 14:49:52 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/49476</link>
        <guid>http://netfly.javaeye.com/blog/49476</guid>
      </item>
      <item>
        <title>web framework选型的困惑</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/42918" style="color:red;">http://netfly.javaeye.com/blog/42918</a>&nbsp;
          发表时间: 2007年01月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          困惑的来由：<br />一直在用struts开发，虽然对struts进行了封装和改进，并使用其动态formbean，但是，还是有狂多的配置文件，狂多的jsp，狂多的action，太多的机械性重复，页面不可以复用，action也不可以复用，我受够了。<br />以前在C/S结构里，一个界面可以完成许多按钮动作，但是现在，却不得不一个按钮对应一个动作、一个界面，真是折腾人。<br /><br />所以，我决定做出改变，从而提出理想的web framework的两个基本标准：<br />其一：组件化，能抽象出几个form，比如单记录form，主从记录form，查询form等<br />其二：异步处理，天然的异步交换，拒绝不停的刷新页面。<br /><br />按第一个标准，就只有jsf和Tapestry可以选择，按第二个标准，就没有了。<br /><br />后来考虑用dwr+qooxdoo+freemark，但是去网上一搜，发现大家都用得灰心丧气的，不但没有减轻开发，反而增加了很多麻烦。听说gwt不错，一看到它是从服务器端生成js代码，类似RPC之类的调用，我就没兴趣了。<br /><br />想来想去，又回到mvc，在struts 2和webwork之间逗来逗去，struts 2要实现0配置还需要一段时间，要实现类似jsf和Tapestry那种组件化的计划都没有。<br /><br />唉，我都不知道该如何办才好。
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/42918#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 03 Jan 2007 21:53:22 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/42918</link>
        <guid>http://netfly.javaeye.com/blog/42918</guid>
      </item>
      <item>
        <title>让Eclipse拖着myeclipse狂飚</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/41097" style="color:red;">http://netfly.javaeye.com/blog/41097</a>&nbsp;
          发表时间: 2006年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Eclipse本身很快的，但是加上了myeclipse后，就狂占内存，而且速度狂慢，那如何让Eclipse拖着myeclipse狂飚呢？相信大家都有些独门秘笈，我先开个头，大家一起让Eclipse拖着myeclipse狂飚起来！<br /><br /><span style="color: blue"><strong>技巧一：取消自动validation</strong></span><br />validation有一堆，什么xml、jsp、jsf、js等等，我们没有必要全部都去自动校验一下，只是需要的时候才会手工校验一下，速度立马提升好几个档次！<br /><strong>取消方法：</strong><br />windows-->perferences-->myeclipse-->validation<br />除开Manual下面的复选框全部选中之外，其他全部不选<br /><strong>手工验证方法：</strong><br />在要验证的文件上，单击鼠标右键-->myeclipse-->run validation<br /><br />注：我用的是 Eclipse3.2.1 ＋ myeclipse5.0.1
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/41097#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Dec 2006 23:27:01 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/41097</link>
        <guid>http://netfly.javaeye.com/blog/41097</guid>
      </item>
      <item>
        <title>AbstractTransactionalDataSourceSpringContextTests=鸡肋?</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/40451" style="color:red;">http://netfly.javaeye.com/blog/40451</a>&nbsp;
          发表时间: 2006年12月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我用mysql做数据库，使用AbstractTransactionalDataSourceSpringContextTests测试时，发现根本没有写数据库，连错误都没有发生，直到我提交了事务才写数据库，并发现了错误。<br /><br />springside的高人也说过：hibernate太奸诈了，如果全部默认回滚，只会在session里干活，一点不写数据库，达不到完全的测试效果。<br />http://www.springside.org.cn/docs/reference/UnitTest.htm<br /><br />如果是这样的话，是否可以认为，AbstractTransactionalDataSourceSpringContextTests对hibernate来说，是个完全的鸡肋？因为不提交的话，事务完全回滚，根本不写数据库，连错误都找不出；提交的话，又破坏了数据。<br /><br />如果不是鸡肋，那该如何改进？
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/40451#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 23 Dec 2006 23:11:20 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/40451</link>
        <guid>http://netfly.javaeye.com/blog/40451</guid>
      </item>
      <item>
        <title>Yale CAS最佳实践 --全部</title>
        <author>netfly</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://netfly.javaeye.com">netfly</a>&nbsp;
          链接：<a href="http://netfly.javaeye.com/blog/40129" style="color:red;">http://netfly.javaeye.com/blog/40129</a>&nbsp;
          发表时间: 2006年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong><u><span style="font-size: 18pt"><span style="color: red">Yale CAS最佳实践 第一部分：配置篇</span></span></u></strong><br /><strong><span style="color: blue">1.环境准备</span><br />Jdk1.4.2</strong><br />Tomcat5.0.28<br />cas-server-2.0.12（没有采用更高版本，是因为它最简单明了）<br />cas-client-java-2.1.1<br /><strong><span style="color: blue">2.在jdk上配置SSL </span></strong><br />到http://java.sun.com/products/jsse/去下载jsse，我用的是1.0.3；下载下来后是一个zip包，把里边lib目录下的jar包复制到你的jdk目录下的jre\lib\ext目录中，是三个文件：jsse.jar;jnet.jar;jcert.jar<br /><br /><strong><span style="color: blue">3.SSL验证证书</span></strong><br /><strong>3.1.生成</strong><br />keytool -genkey -alias tomcat -keyalg RSA<br />?	如果C:\Documents and Settings\Administrator\.keystore已经存在，请先删除。<br />?	输入tomcat本身的缺省口令changeit<br />?	用户前名和用户后名都用localhost<br />keytool -export -alias tomcat -file server.crt<br />只能输入tomcat的缺省口令changeit<br />keytool -import -trustcacerts -alias tomcat -file server.crt -keystore %java_home%/jre/lib/security/cacerts<br /><strong>3.2.显示</strong><br />keytool -list -v -keystore %java_home%/jre/lib/security/cacerts > t.txt<br /><strong>3.3.删除</strong><br />keytool -delete -alias tomcat -keystore  %java_home%/jre/lib/security/cacerts -keypass changeit<br />只能输入tomcat的缺省口令changeit<br /><strong>3.4.keytool参考</strong><br />%JAVA_HOME%\bin\keytool -delete -alias tomcat -keypass changeit<br />%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keypass changeit -keyalg RSA<br />%JAVA_HOME%\bin\keytool -export -alias tomcat -keypass changeit  -file %FILE_NAME%<br />%JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit <br />-keystore %JAVA_HOME%/jre/lib/security/cacerts<br />%JAVA_HOME%\bin\keytool -import -file server.crt -keypass changeit<br />%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -validity 365<br /><br /><span style="color: blue"><strong>4.Tomcat配置</strong></span><br /><strong>4.1.拷贝</strong><br />拷贝C:\Documents and Settings\Administrator\.keystore到％tomcat_home%\conf\<br /><strong>4.2.配置</strong><br />编辑％tomcat_home%\conf\server.xml，去掉ssl的注释，并更改为如下配置<br />    &lt;Connector port="8443" keystorePass="changeit" keystoreFile="conf/.keystore"<br />               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />               enableLookups="false" disableUploadTimeout="true"<br />               acceptCount="100" debug="0" scheme="https" secure="true"<br />               clientAuth="false" sslProtocol="TLS" /><br /><strong>4.3.注意</strong><br />请保持C:\Documents and Settings\Administrator\.keystore与％tomcat_home%\conf\.keystore一致<br /><br /><strong><span style="color: blue">5.Tomcat jmx bug</span></strong><br />在sun网站上http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp<br />下载jmx-1_2_1-ri.zip，解压后，把jmxri.jar重命名为jmx.jar，覆盖tomcat/bin目录下的jmx.jar<br />这个适用于cas-server-3.*<br /><br /><br /><strong><u><span style="font-size: 18pt"><span style="color: red">Yale CAS最佳实践 第二部分：原理篇</span></span></u></strong><br /><br /><span style="color: blue"><strong>6.概念术语</strong></span><br />CAS(Central Authentication Service) <br />TGT(Ticket Granting Ticket) <br />ST(Service Ticket)<br />PGT(Proxy Granting Ticket)<br /><span style="color: blue"><strong>7.原理剖析</strong></span><br />Yale CAS使用了Ticket Granting Cookie （简称TGC）去作为获取Service Ticket（简称ST）的凭据，这个TGC 是保存在客户端的cookie，即当第2次被其他CAS Client重定向的时候，CAS Server实际上已经从用户的Cookie中抓取到TGC，然后知道TGC对应的用户，因此避免了再次登录，如果CAS Server抓取不到TGC，则用户需要登陆。<br /><br />众所周知，cookie是不能跨域的。但是CAS能够做abc.com和xyz.com的sso，因为CAS Server缓存了所有的ticket，所以Client无需共享cookies。<br /><br /><strong><u><span style="font-size: 18pt"><span style="color: red">Yale CAS最佳实践 第三部分：源代码研读</span></span></u></strong><br /><br /><span style="color: blue"><strong>8.源代码研读</strong></span><br /><strong>8.1.web.xml参数定义：</strong><br />edu.yale.its.tp.cas.client.filter.loginUrl: CAS server的login URL. (Required) <br />edu.yale.its.tp.cas.client.filter.validateUrl: CAS server的URL验证器. (Required) <br />edu.yale.its.tp.cas.client.filter.serviceUrl: URL of this service. (Required if serverName is not specified) <br />edu.yale.its.tp.cas.client.filter.serverName: 主机名:端口号<br />edu.yale.its.tp.cas.client.filter.authorizedProxy: 身份验证代理，用空格隔开.必须有一个. (缺省，只接受ST，不接受PT) <br />edu.yale.its.tp.cas.client.filter.proxyCallbackUrl: 本地代理回调监听器，用来接受PGT/PGTIOU. (可选) <br />edu.yale.its.tp.cas.client.filter.renew: 是否重新登录参数(缺省为false)<br />edu.yale.its.tp.cas.client.filter.gateway: 是否使用网关......虽然英文不难明白，但的确不懂到底有什么用，因而不敢断章取义，望哪位高手能补充一下，在此谢过<br />edu.yale.its.tp.cas.client.filter.wrapRequest: 封装了HttpServletRequest,重载了getRemoteUser()方法. 如果设置为"true", request.getRemoteUser()将返回登录用户名.(可选的，缺省为false.)<br /><strong>8.2.总体结构图</strong><br /><img src="http://netfly.javaeye.com/topics/download/9f613d90-f53c-4513-b34e-9dc242f6c4e8" /><br /><strong>8.3.client源代码研读</strong><br /><img src="http://netfly.javaeye.com/topics/download/d78e0920-d278-4681-8631-a4cc78b5e0c6" /><br /><strong>8.4.server源代码研读</strong><br /><img src="http://netfly.javaeye.com/topics/download/65b06396-3a97-4cc5-bb28-5d177cd67bfc" /><br /><strong><u><span style="font-size: 18pt"><span style="color: red">Yale CAS最佳实践 第四部分：试试身手</span></span></u></strong><br /><br /><span style="color: blue"><strong>1.测试类</strong></span><br />我写了一个RequestInfoServlet，可以显示HttpRequest的绝大部分有用信息，经过sso后，可以查看 HttpRequest里面还有什么东西。呵呵，我喜欢这样干。<br /><br /><pre name="code" class="java">
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * @author Liujj Date 2006-12-19 &lt;br>
 *         Description: &lt;br>
 *         RequestHeadersServlet
 */
public class RequestInfoServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		//header
		Enumeration headerNames = request.getHeaderNames();
		out.println("&lt;B>*********[1].begin print headerNames************&lt;/B>&lt;p>");
		while (headerNames.hasMoreElements()) {
			String name = (String) headerNames.nextElement();
			String value = request.getHeader(name);
			out.println(name + " = " + value + "&lt;p>");
		}
		out.println("&lt;B>*********[1].end print headerNames************&lt;/B>&lt;p>&lt;p>");
		
		//attributeNames
		out.println("&lt;B>*********[2].begin print attributeNames************&lt;/B>&lt;p>");
		Enumeration attributeNames = request.getAttributeNames();
		while (attributeNames.hasMoreElements()) {
			String name = (String) attributeNames.nextElement();
			String value = (String)request.getAttribute(name);
			out.println(name + " = " + value + "&lt;p>");
		}
		out.println("&lt;B>*********[2].end print attributeNames************&lt;/B>&lt;p>&lt;p>");
		
		//parameterNames
		out.println("&lt;B>*********[3].begin print parameterNames************&lt;/B>&lt;p>");
		Enumeration parameterNames = request.getParameterNames();
		while (parameterNames.hasMoreElements()) {
			String name = (String) parameterNames.nextElement();
			String value = request.getParameter(name);
			out.println(name + " = " + value + "&lt;p>");
		}
		out.println("&lt;B>*********[3].end print parameterNames************&lt;/B>&lt;p>&lt;p>");
		
		//session
		out.println("&lt;B>*********[4].begin print session AttributeNames************&lt;/B>&lt;p>");
		HttpSession session = request.getSession();
		Enumeration sAttributeNames = session.getAttributeNames();
		while (sAttributeNames.hasMoreElements()) {
			String name = (String) sAttributeNames.nextElement();
			Object value = session.getAttribute(name);
			out.println(name + " = " + value + "&lt;p>");
		}
		out.println("&lt;B>*********[4].end print session attributeNames************&lt;/B>&lt;p>&lt;p>");
		
		//cookie
		out.println("&lt;B>*********[4].begin print Cookie************&lt;/B>&lt;p>&lt;p>");
		Cookie[] cookie = request.getCookies();
		for(int i=0; i&lt; cookie.length; i++) {
			String name = cookie[i].getName();
			String value = cookie[i].getValue();
			out.println(name + " = " + value + "&lt;p>");
		}   
		out.println("&lt;B>*********[4].end print Cookie************&lt;/B>&lt;p>&lt;p>");
		
	}

}
</pre><br /><strong><span style="color: blue">2.cas log不起作用</span></strong><br />目前那个log4j不起作用，天天用着的，算是个小bug，哪个兄弟下载后能帮忙解决一下，再次谢过^_^
          <br/>
          <span style="color:red;">
            <a href="http://netfly.javaeye.com/blog/40129#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Dec 2006 22:13:06 +0800</pubDate>
        <link>http://netfly.javaeye.com/blog/40129</link>
        <guid>http://netfly.javaeye.com/blog/40129</guid>
      </item>
  </channel>
</rss>