快速业务通道

SSO单点登录解决方案 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
dquo;,只有在JDK1.5中才有。

这三个Web应用完全可以单独部署,它们 可以分别部署在 不同的机器,不同的操作系统和不同的J2EE的产品上,它们完全是标准的和平台无关的 应用。但是有一个限制,那两台部署应用(demo1、demo2)的 机器的域名需要相同,这在后面的章节中 会解释到cookie和domain的关系以及如何制作跨域的WEB-SSO

解压缩SSOAuth.zip文件,在/WEB- INF/下的web.xml中请修改“domainname”的属性以反映实际的应用部署情况, domainname 需要设置为两个单点登录的应用(demo1和demo2)所属的域名。这个domainname和当前SSOAuth服务部署 的机器 的域名没有关系。我缺省设置的是“.sun.com”。如果你部署demo1和demo2的机器没 有域名,请输入IP地址或主机名(如 localhost),但是如果使用IP地址或主机名也就意味着demo1和 demo2需要部署到一台机器上了。设置完后,根据你所选择的J2EE容器, 可能需要将SSOAuth这个目录压 缩打包成war文件。用“jar -cvf SSOAuth.war SSOAuth/”就可以完成这个功能。

解 压缩SSOWebDemo1和SSOWebDemo2文件,分别在它们/WEB-INF/下找到web.xml文件,请修改其中的几个初 始化参数

<init-param> <param-name>SSOServiceURL</param- name> <param-value>http://wangyu.prc.sun.com:8080/SSOAuth/SSOAuth</param- value> </init-param> <init-param> <param- name>SSOLoginPage</param-name> <param- value>http://wangyu.prc.sun.com:8080/SSOAuth/login.jsp</param-value> </init-param>

将其中的SSOServiceURL和SSOLoginPage修改成部署SSOAuth应用 的机器名、端口号以及根路径 (缺省是 SSOAuth)以反映实际的部署情况。设置完后,根据你所选择的 J2EE容器,可能需要将SSOWebDemo1和SSOWebDemo2这两个目录压 缩打包成两个war文件。用“jar -cvf SSOWebDemo1.war SSOWebDemo1/”就可以完成这个功能。

请输入第一个web应用的测 试URL(test.jsp),例如http://wangyu.prc.sun.com:8080/SSOWebDemo1/test.jsp,如果是第一次访问 ,便会自动跳转到登录界面,如下图。

使用系统自带的三个帐号之一登录(例如,用户名:wangyu,密码:wangyu),便能成功的看到 test.jsp的内容:显示当前用户名和欢迎信息。

SSO单点登录解决方案(5)

时间:2010-01-06

请接着在同一个浏览器中输入第二个web应用的测试URL(test.jsp),例如 http://wangyu.prc.sun.com:8080/SSOWebDemo2/test.jsp。你会发现,不需要再次登录就能看到 test.jsp的内容,同样是显示当前用户名和欢迎信息,而且欢迎信息中明确的显示当前的应用名称 (demo2)。

3.2 WEB-SSO代码讲解

3.2.1身份认证服务代码解析

Web-SSO的源代码可以从网站地址 http://gceclub.sun.com.cn/wangyu/web-sso/websso_src.zip下 载。身份认证服务是一个标准的web应 用,包括一个名为SSOAuth的Servlet,一个login.jsp文件和一个failed.html。身份 认证的所有服务几 乎都由SSOAuth的Servlet来实现了;login.jsp用来显示登录的页面(如果发现用户还没有登录过); failed.html是用来显示登录失败的信息(如果用户的用户名和密码与信息数据库中的不一样)。

SSOAuth的代码如下面的列表显示,结构非常简单,先看看这个Servlet的主体部分:

package DesktopSSO; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import javax.servlet.*; import javax.servlet.http.*; public class SSOAuth extends HttpServlet { static private ConcurrentMap accounts;

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号