`

java实现简单的单点登录(2)-Web SSO 的样例

阅读更多

3.1 Web SSO 的样例
根据上面的原理,我用J2EE的技术(JSPServlet)完成了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能。此样例所有的源代码和二进制代码都可以从网站地址http://gceclub.sun.com.cn/wangyu/ 下载。
 
样例下载、安装部署和运行指南:
  • Web-SSO的样例是由三个标准Web应用组成,压缩成三个zip文件,从http://gceclub.sun.com.cn/wangyu/web-sso/中下载。其中SSOAuthhttp://gceclub.sun.com.cn/wangyu/web-sso/SSOAuth.zip)是身份认证服务;SSOWebDemo1http://gceclub.sun.com.cn/wangyu/web-sso/SSOWebDemo1.zip)和SSOWebDemo2http://gceclub.sun.com.cn/wangyu/web-sso/SSOWebDemo2.zip)是两个用来演示单点登录的Web应用。这三个Web应用之所以没有打成war包,是因为它们不能直接部署,根据读者的部署环境需要作出小小的修改。样例部署和运行的环境有一定的要求,需要符合Servlet2.3以上标准的J2EE容器才能运行(例如Tomcat5,Sun Application Server 8, Jboss 4等)。另外,身份认证服务需要JDK1.5的运行环境。之所以要用JDK1.5是因为笔者使用了一个线程安全的高性能的Java集合类“ConcurrentMap”,只有在JDK1.5中才有。
  • 这三个Web应用完全可以单独部署,它们可以分别部署在不同的机器,不同的操作系统和不同的J2EE的产品上,它们完全是标准的和平台无关的应用。但是有一个限制,那两台部署应用(demo1demo2)的机器的域名需要相同,这在后面的章节中会解释到cookiedomain的关系以及如何制作跨域的WEB-SSO
  • 解压缩SSOAuth.zip文件,在/WEB-INF/下的web.xml中请修改“domainname”的属性以反映实际的应用部署情况,domainname需要设置为两个单点登录的应用(demo1demo2)所属的域名。这个domainname和当前SSOAuth服务部署的机器的域名没有关系。我缺省设置的是“.sun.com”。如果你部署demo1demo2的机器没有域名,请输入IP地址或主机名(如localhost),但是如果使用IP地址或主机名也就意味着demo1demo2需要部署到一台机器上了。设置完后,根据你所选择的J2EE容器,可能需要将SSOAuth这个目录压缩打包成war文件。用“jar -cvf SSOAuth.war SSOAuth/”就可以完成这个功能。
  • 解压缩SSOWebDemo1SSOWebDemo2文件,分别在它们/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>
    将其中的SSOServiceURLSSOLoginPage修改成部署SSOAuth应用的机器名、端口号以及根路径(缺省是SSOAuth)以反映实际的部署情况。设置完后,根据你所选择的J2EE容器,可能需要将SSOWebDemo1SSOWebDemo2这两个目录压缩打包成两个war文件。用“jar -cvf SSOWebDemo1.war SSOWebDemo1/”就可以完成这个功能。
  • 请输入第一个web应用的测试URLtest.jsp,例如http://wangyu.prc.sun.com:8080/ SSOWebDemo1/test.jsp,如果是第一次访问,便会自动跳转到登录界面,如下图

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

分享到:
评论

相关推荐

    SSO.zip_SSO J2EE_Web-SSO src_java sso_sso java_web sso

    用J2EE的技术(JSP和Servlet)完成了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能

    SSO单点登录完整代码

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这个技术在现代企业信息系统中广泛应用,简化了用户操作,提高了用户体验,同时也...

    SSO CAS 单点登录实例SSOAuth+SSOWebDemo1+SSOWebDemo2.zip

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的...

    单点登录实例

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互关联的系统。它简化了用户管理和提升了用户体验,尤其是在大型企业或多应用环境中。这...

    springboot整合Oauth2,GateWay实现网关登录授权验证

    在实际操作中,我们可能还需要考虑一些高级特性,例如刷新令牌、令牌过期策略、单点登录(SSO)以及JWT(JSON Web Tokens)的使用。JWT可以减少与授权服务器的交互次数,提高系统性能。在Spring Boot中,可以使用...

    实现Cordys的gatway

    在本文中,我们将深入探讨如何通过实现Cordys Gateway来实现实现单点登录(Single Sign-On, SSO)功能,以及如何利用该平台进行文件的上传和下载操作。 首先,让我们关注单点登录。单点登录是一种身份验证机制,...

    cas-5.3模板

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单一登录(Single Sign-On...通过深入研究这些文件,我们可以了解和定制CAS服务器的行为,实现与Shiro的无缝集成,构建高效且安全的单点登录系统。

    fido2:开源FIDO服务器,具有FIDO2标准。 https

    下载代码并将其与您自己的Web登录集成,或研究OpenAPI文档并贡献自己的代码提交。 以下链接提供了FIDO,FIDO联盟和FIDO2的一些背景知识: 安装 按照下载SKFS,并使它作为独立服务器运行。 按照下载SKFS并使它作为...

    SSOProfilerWeb

    SSOProfilerWeb是一个基于Java开发的身份验证和单点登录(Single Sign-On, SSO)解决方案。这个项目的主要目的是提供一个简单、高效的SSO框架,帮助开发者轻松实现用户身份验证和跨多个应用程序的权限管理。在现代...

    cas_example.rar_CAS Example

    CAS是一种基于Web的单点登录(Single Sign-On,SSO)框架,它允许用户通过一个凭证(如用户名和密码)访问多个应用系统,而无需为每个系统单独登录。这个压缩包可能是为了展示如何配置和使用CAS服务器,帮助开发者或...

    spring-boot-starter-samples:spring-boot-starter-samples

    3. **CAS**:Central Authentication Service(CAS)是一种广泛使用的单点登录(SSO)协议,Spring Boot starter for CAS可以让我们轻松地集成CAS服务。 4. **Druid**:Druid是一个优秀的数据库连接池,提供了监控...

Global site tag (gtag.js) - Google Analytics