SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
这里只是介绍下一种简单的实现,并不能完全称为SSO,即通过URL的传值来实现同一登陆界面对不同系统的登录(在一个界面里把要登录的系统账号密码都输一遍,之后访问各个系统都是已登录状态)。
总体说下思路,核心就是把登录其他系统的URL直接发出去而不再分别访问它们的登录页。首先在一个系统中设置要进行多点登录的系统,输入系统名、用户名输入框ID、密码输入框ID、form表单名、登录链接URL、字符集等,把它们做为设置保存起来,这里可以存在properties文件中,避免未登录时访问数据库的不稳定性,存储方式采用json字符串的形式。在登录总系统时,有下拉框选择登录其他系统,登录其他系统时采用把用户名和密码传到主页面的一个iframe中的页面中进行提交,这样可以避免字符集不同造成的问题。
部分代码:
对json进行处理的例子(根据需要使用其中方法)
private Map getMainData(String data) {
if (data == null) return null;
//将一个字符串转换为JSON对象
JSONObject jObject = JSONObject.fromObject(data);
if (jObject == null) return null;
//从一个JSON对象中取出名为“ary”的数组
JSONArray recordAry = JSONArray.fromObject(jObject.get("ary"));
if (recordAry == null || recordAry.size() == 0) return null;
Map map = new HashMap();
for (int i = 0; i < recordAry.size(); i++) {
//从JSON数组中取得一个JSON对象
JSONObject obj = recordAry.getJSONObject(i);
if (obj == null) continue;
String value;
try {
//从JSON对象中取得一个属性,如果无法确定该属性一定存在,要加try{}catch(){}
value = obj.getString("v");
} catch (Exception ex) {
continue;
}
//将一个对象放入JSON对象中,这里注意是加入不是替换!!!要想替换要删掉原来的再重加入
obj.accumulate("key", "value");
}
//将一个JSON对象转为字符串
String jsonStr = jObject.toString();
return map;
}
登录页面js方法(登录其他系统)
function webLogIn() {
//取出要登录系统登陆页面的form名、输入框id
var formName = document.all.actForm.formName.value;
var userNameInputId = document.all.actForm.userNameInputId.value;
var pasdInputId = document.all.actForm.pasdInputId.value;
//得到iframe中页面元素,注意使用eval处理名称是变量的情况
var webUserIdElement = eval("webPage.document.all."+formName+"."+userNameInputId+";");
var webUserPwdElement = eval("webPage.document.all."+formName+"."+pasdInputId+";");
webUserIdElement.value = document.all.actForm.userId.value;
webUserPwdElement.value = document.all.actForm.userPwd.value;
if (document.all.actForm.userId.value== "") {
alert("请输入用户名。");
return false;
}
if (document.all.actForm.userPwd.value=="") {
alert("请输入密码。");
return false;
}
var objForm = eval("webPage.document."+formName+";");
alert("请求已提交");
objForm.submit();
}
后台把系统的其他信息直接传到iframe中的页面
分享到:
相关推荐
- **基于OAuth 2.0**:OAuth 2.0提供了一种标准的授权框架,可以用来实现单点登录。通过OAuth 2.0,用户只需在一个中央授权服务器上完成认证,即可获得访问多个子系统的权限。 - **基于SAML**:Security Assertion ...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这个过程提高了用户体验,同时也简化了安全管理。在本文中,我们将探讨SSO的基本原理...
单点登录(Single Sign-On,简称SSO)是一种网络用户身份验证的机制,允许用户在一次登录后,访问多个相互信任的应用系统而无需再次进行身份验证。本源码包提供了SSO的简单实现,适用于学习和理解SSO的基本原理与...
单点登录(Single Sign-On,SSO)是一种身份验证机制,允许用户在多个相互关联的应用系统中登录一次,然后在整个会话期间无需再次输入凭证即可访问这些系统。在本文中,我们将探讨如何利用Iframe和Cookie技术来实现...
单点登录是一种用户登录认证方法,允许用户在多个应用系统中,只通过登录一次就可以访问所有相互信任的应用系统。这对于提升用户体验和简化系统安全管理都非常重要。 Kisso的特性包括“无状态”和“分散验证”。在...
在IT行业中,Web单点登录(Single Sign-On,简称SSO)是一种常见的身份验证机制,它允许用户通过一次登录即可访问多个相互关联的应用系统,提高了用户体验并降低了管理复杂性。本教程将指导你如何使用J2EE技术,特别...
单点登录(SSO)是一种认证和授权机制,允许注册用户只需要在任一系统上登录一次,而后授权访问其他系统,无需再进行登录。SSO可以集中身份认证服务,用户只需登录一次就能够任意访问企业内的各种应用服务和信息资源...
4. Token-based例如SecureID,WebID,现在被广泛使用的口令认证,比如FTP、邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。 5. 基于网关 6. 基于SAML(Security Assertion Markup ...
单点登录系统是一种让用户只需进行一次身份验证就能访问所有关联应用的技术。其核心思想在于通过中心化的认证服务来管理用户的登录状态,并将此状态共享给各个参与的应用系统。这样可以显著提高用户体验,同时降低因...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互关联的系统。在门户项目中,实现SSO能够提供无缝的用户体验,提高工作效率,同时降低...
用户单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或服务中登录后,无需再次认证即可访问多个相互信任的系统。这种技术大大提升了用户体验,减少了频繁输入用户名和密码的繁琐...
综上所述,使用Spring Security结合JWT实现单点登录(SSO)是一种既实用又安全的方法。通过定制Spring Security过滤器,可以有效地处理用户的认证和授权过程。JWT作为一种轻量级的身份验证机制,不仅能够提高系统的...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在Java Web环境中实现单点登录,可以提高用户体验,减少用户记忆多套账号密码的负担,...
单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个“单点登录的demo(使用cookie+filter实现)”中,我们将深入探讨如何利用Cookie和...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在多个相互关联的应用系统中只需要登录一次,即可访问所有系统,而无需再次输入凭证。这种技术在现代企业环境中非常常见,因为它提供了便捷的用户体验并...
在IT领域,单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户使用一组凭证登录系统后,无需再次认证即可访问多个相互关联的应用或服务。本话题将详细探讨如何通过UCenter、MediaWiki和Discuz X2这...
单点登录(Single Sign-On,简称SSO)是一种网络用户身份验证的机制,允许用户在一次登录后,访问多个相互信任的应用系统而无需再次输入凭证。在Java中实现SSO,我们可以利用各种框架和技术,如Spring Security、...
本文将介绍一种简单实现SSO的方法,特别适合于对SSO需求较低且不愿修改被集成系统的情况。 首先,了解几种常见的SSO解决方案: 1. 使用专业的SSO商业软件,如Netgrity的Siteminder、Novell的iChain、RSA的...