﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava--随笔分类-sso</title><link>http://www.blogjava.net/leekiang/category/36357.html</link><description>MDA/MDD/TDD/DDD/DDDDDDD</description><language>zh-cn</language><lastBuildDate>Sat, 28 Nov 2009 11:53:27 GMT</lastBuildDate><pubDate>Sat, 28 Nov 2009 11:53:27 GMT</pubDate><ttl>60</ttl><item><title>PKI笔记</title><link>http://www.blogjava.net/leekiang/archive/2009/03/18/260358.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Tue, 17 Mar 2009 18:35:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2009/03/18/260358.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/260358.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2009/03/18/260358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/260358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/260358.html</trackback:ping><description><![CDATA[
		<span style="font-size: 9pt; color: rgb(5, 68, 164); font-family: '宋体';">PKI是解决开放式互联网络信息安全需求的成熟体系。PKI体系支持身份认证，信息传输、存储的完整性，消息传输、存储的机密性，以及操作的不可否认性。<br /><br /><br /><br /></span>一个用jsp开发的web应用，使用了session作为sigle sign on的实现。在用firefox浏览时没有问题，用IE 6浏览时刚开始也可以，点过几次后就会出现session lost的错误。<br /><br />检
查发现IE6浏览时，web服务器端日志记下的sissionid变了。由于sessionid一般存在于cookie，推测是IE的cookie机制导
致的问题。考虑到这个应用使用了frameset，参考文章：http://support.microsoft.com
/default.aspx?scid=KB;EN-US;Q323752<br /><br />在frameset里面，也就是里面的frame是来自第三方
站点(不同IP或不同域名)，那么默认情况下IE会自动禁用这些站点的cookie，也就是 在请求某url时在HTTP
header里不发送它们的cookie，包括session的cookie。注意，这些站点在response里面设置的cookie还是会被发送到浏
览器的。
<p>那么，解决的办法，自然是对frame里面的第三方站点的response header里面添加一个确认信息，在MSDN里面有个最简单的解决办法：response.addHeader("P3P","CP=CAO PSA OUR")。response.setHeader("P3P","CP=CAO PSA OUR");</p><p>最简单的办法，是用一个filter，对所有路径下的uri，都设置response.setHeader("P3P","CP=CAO PSA OUR")。 <br /></p><p>上面是microsoft提供的办法，以下是likebao的办法：tomcat关闭cookies，用URL重写传递sessionid。</p><p>1.tomcat关闭cookies，强制使用URL Rewriting</p><p>增加E:\jakarta-tomcat-5.0.28\conf\Catalina\localhost\XXApp.xml</p><p>内容如下：</p><p>&lt;Context path="/XXApp" docBase="${catalina.home}/webapps/XXApp"<br />        debug="0" privileged="true" cookies="false"&gt; <br />&lt;/Context&gt;</p><p>2.URL重写传递seesionid</p><p>    &lt;%</p><p>            String sid=session.getid();</p><p>             response.redirect("xxxx123.jsp;jsessionid="+sid);<br /></p><p>    %&gt;</p><p>p3p是微软的隐私策略，通常情况下跨域iframe或者frameset默认采用的隐私策略为“中”，该级别的策略拒绝保留session。CAO PSA OUR则意味着你同意跨域保留session，但是也意味着你的网站不再安全。</p><img src ="http://www.blogjava.net/leekiang/aggbug/260358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2009-03-18 02:35 <a href="http://www.blogjava.net/leekiang/archive/2009/03/18/260358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jCIFS(转)</title><link>http://www.blogjava.net/leekiang/archive/2008/11/29/243368.html</link><dc:creator>leekiang</dc:creator><author>leekiang</author><pubDate>Fri, 28 Nov 2008 17:16:00 GMT</pubDate><guid>http://www.blogjava.net/leekiang/archive/2008/11/29/243368.html</guid><wfw:comment>http://www.blogjava.net/leekiang/comments/243368.html</wfw:comment><comments>http://www.blogjava.net/leekiang/archive/2008/11/29/243368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leekiang/comments/commentRss/243368.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leekiang/services/trackbacks/243368.html</trackback:ping><description><![CDATA[
		<p>jCIFS是一个完全用Java开发的SMB客户端库。它紧密地遵循CIFS规范（是Microsoft
Windows平台标准文件共享协议），支持Unicode，命令管道，批处理，线程化调用者的IO复用，加密认证，完整事务，域/工作组/主机/共享
/文件枚举，NetBIOS 套接字和名称服务，smb:// URL协议处理器，一个类API的java.io.File ，RAP调用，NTLM
HTTP鉴别。它广泛用于企业内部网络。 <br /><br />JCIFS: The Java CIFS Client Library<br /><a href="http://jcifs.samba.org/">http://jcifs.samba.org/</a><br /></p>
		<p>很多公司都希望WEB登陆与域用户结合起来，实现单点登陆，使用jcifs.jar可以非常好实现，下载一个最新的jcifs.jar，放到WEB-INFlib下面，现在是1.27版，然后修改web.xml，加入下面：</p>
		<p>&lt;filter&gt;<br />&lt;filter-name&gt;NtlmHttpFilter&lt;/filter-name&gt;<br />&lt;filter-class&gt;jcifs.http.NtlmHttpFilter&lt;/filter-class&gt;<br />&lt;init-param&gt;<br />&lt;param-name&gt;jcifs.http.domainController&lt;/param-name&gt;<br />&lt;param-value&gt;192.168.0.90&lt;/param-value&gt;<br />&lt;/init-param&gt;<br />&lt;/filter&gt;</p>
		<p>&lt;filter-mapping&gt;<br />&lt;filter-name&gt;NtlmHttpFilter&lt;/filter-name&gt;<br />&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />&lt;/filter-mapping&gt;</p>192.168.0.90是你AD服务器，然后在你的登陆的代码中使用<br />request.getRemoteUser()，就可以得到当前域用户的用户名了<br />转自http://www.eit.name/blog/read.php?275<br /><img src ="http://www.blogjava.net/leekiang/aggbug/243368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leekiang/" target="_blank">leekiang</a> 2008-11-29 01:16 <a href="http://www.blogjava.net/leekiang/archive/2008/11/29/243368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>