`
enjoyP
  • 浏览: 501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
第一次写这东西,不知道说些什么好!简单整理一下今天面试的情况吧。

Hashtable与Hashmap的区别:
1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。

2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。

3.HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

4.HashTable使用Enumeration,HashMap使用Iterator。

单点登录的含义:单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即 通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。

目前的企业应用环境中,往往有很多的应用系统,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息 化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而且应用 系统不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问题的原因 并不是系统开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台,使用SSO技术可以解决以上这些问题。
一、使用SSO的好处主要有
(1)方便用户
用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。
(2)方便管理员
系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。
(3)简化应用系统开发
开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。
二、实现SSO的技术主要有
(1)基于cookies实现,需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在windows中成立,在 unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨 域,但可以利用它实现跨域的SSO。
(2)Broker-based(基于经纪人),例如Kerberos等;
这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子的身份存取。中央数据库的使用减少了管理的代价,并为认证 提供一个公共和独立的"第三方"。例如Kerberos、Sesame、IBM KryptoKnight(凭证库思想)等。
(3)Agent-based(基于代理)
在这种解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如, 它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。例如 SSH等。
(4)Token-based,例如SecurID、WebID、
现在被广泛使用的口令认证,比如FTP,邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。
(5)基于网关
Agent and Broker-based,这里不作介绍。
(6)基于安全断言标记语言(SAML)实现,SAML(Security Assertion Markup Language,安全断言标记语言)的出现大大简化了SSO,并被OASIS批准为SSO的执行标准。开源组织OpenSAML 实现了 SAML 规范,可参考http//www.opensaml.org。
三、SUN SSO技术
SUN SSO技术是Sun Java System Access Manager产品中的一个组成部分。
Sun 的新身份管理产品包括Sun Java System Identity Manager、Sun Java System Directory Server Enterprise Edition 和 Sun Java System Access Manager,以上三者为Sun Java Identity Management Suite (身份识别管理套件)的组成部分,它们与Sun Java Application Platform Suite、Sun Java Availability Suite、Sun Java Communications Suite、Sun Java Web Infrastructure Suite组成Java ES。具有革新意义的这一系列产品提供端到端身份管理,同时可与 60 多种第三方资源和技术实现互操作,集成产品可以从SUN公司网站下载,一般以Agent软件方式提供,是业内集成程序最高、最为开放的身份管理解决方案之 一。
在Sun 的新身份管理产品中,Sun Java System Access Manager是基中的一个重要组成部分,Java Access Manager基于J2EE架构,采用标准的API,可扩展性强,具有高可靠性和高可用性,应用是部署在Servlets容器中的,支持分布式,容易部署 且有较低的TCO。通过使用集中验证点、其于角色的访问控制以及 SSO,Sun Java System Access Manager 为所有基于 Web 的应用程序提供了一个可伸缩的安全模型。它简化了信息交换和交易,同时能保护隐私及重要身份信息的安全。
四、CAS 介绍
CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应 用。
Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。Acegi安全系统在国内外得到了广泛的应用, 有着良好的社区环境。
CAS 的设计目标
(1)为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;
(2)简化应用认证用户身份的流程;
(3)将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且当应用需要修改身份验证的业务逻辑时,不需要到处修改代码。
CAS 的实现原理
CAS(Central Authentication Server)被设计成一个独立的Web应用。实现原理非常简单。
CAS创建一个位数很长的随机数(ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户 peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon和仅仅用于service S,并且只能使用一次,使用之后马上会过期,即ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。这样可以保证其安全性。
关于ST,在取一个ST时,即使用delete Ticket(ticketId)同时将一次性的ST删除;而对于TGT或PT,则通过reset Timer(ticketId)以更新TGT或PT的时间。在CAS服务端返回的ST中只能得出用户名。
另外,CAS3.0版本也已经发布了,现在最新的版本是3.03,希望CAS3.0在向下兼容的同时,更能向我们提供一些新东西。
SUN SSO 实现原理
SSO的核心在于统一用户认证,登录、认证请求通过IDENTITY SERVER服务器完成,然后分发到相应应用。
SUN SSO是java Access Manager的一个组成部分,SSO基于Cookie实现解释如下:
(1)Policy Agent on Web or Application Server intercepts resource requests and enforces access control;
(2)Client is issued SSO token containing information for session Validation with Session service.
(3)SSO token has no content- just a long random string used as a handle.
(4)Web-based applications use browser session cookies or URL rewriting to issue SSO token.
(5)Non Web applications use the SSO API(Java/c) to obtain the SSO token to validate the users identity.
SUN SSO 的应用
这里说的应用是指Sun Java System Access Manager的应用。成功应用例子很多,包括德国电信等公司的应用,国内也有大量高校在使用,也有相当多的其它行业的应用。
SUN SSO的开源
Sun 将发布其网络验证与网络单点登录技术,给一项新的开放源代码计划“Open Web Single Sign-On”(Open SSO)。OpenSSO网站位于:https://opensso.dev.java.net/。 该网站对OpenSSO的概述为:This project is based on the code base of Sun Java(tm) System Access Manager Product, a core identity infrastructure product offered by Sun Microsystems.
OpenSSO 计划的第一部份源代码,将于今年年底完成,基本的版本将于明年3月份发布,而完整的版本可能要等到明年五月份。Sun 采用与Solaris 操作系统相同的共同开发暨流通授权(Common Development and Distribution License)方式。
分享到:
评论

相关推荐

    一键安装oracle安装手册(完整版).doc

    1. **Oracle 10G一键安装**:手册提到的目标之一是实现Oracle 10G数据库的自动化安装,这通常涉及一系列预先配置好的脚本和工具,以减少手动干预和错误。 2. **数据库导入**:除了基础的安装,手册还涵盖了数据库的...

    备注标签博文篇

    "HBase官方文档-盛大翻译-V1.doc"可能是盛大公司翻译的HBase官方文档的第一个版本,而"HBase官方文档-周海汉-V2.pdf"可能是周海汉翻译的HBase官方文档的第二个版本,这可能意味着博文作者探讨了HBase数据库的使用,...

    结构之法 算法之道 第一期博文CHM文件集锦[版权所有,侵权必究]

    结构之法算法之道- CSDN博客博文集锦第一期CHM 文件 首先恭喜你,你得到了一份非常宝贵的资源。此份文件是截止到2011年2月27日,结构之法算法之道博客内的第一期的全部内容的集锦,同时,本博客永久更新,永久维护。...

    对应博文第三篇-插件机制的简单交互

    在“对应博文学习插件架构(三)”中,我们可能会了解到以下几点: 1. 插件注册:主程序需要知道哪些插件存在,因此插件通常会在启动时向主程序注册。注册过程可能涉及提供插件的元数据,如插件名称、版本、作者等...

    第一篇原创 flash as3.0----第一课时

    【标题】:“第一篇原创 Flash AS3.0——第一课时” 在Flash开发领域,ActionScript 3.0(简称AS3.0)是Adobe Flash Professional中的编程语言,用于创建交互式内容、游戏和动画。AS3.0相比之前的版本有显著的性能...

    【雨松MOMO】Android开发系列博文大合集总汇

    雨松MOMO游戏与软件开发大讲堂 大汇集 博文第一篇到博文第三十二篇所有Android开发博文大合集,以及所有博文中附带的源代码,一共将近50M,Android开发资源 ,给力推荐 。欢迎大家下载阅读,持续给力~~哇咔咔~~

    吉林省博文2018_2019学年高一语文下学期第一次月考试题.doc

    这篇文档是吉林省博文中学2018-2019学年高一语文下学期第一次月考试题,属于中学试卷类别。试题涉及论述类文本阅读和文言文阅读两个部分,主要测试学生的语文理解与分析能力。 论述类文本阅读部分讨论了阅读模式,...

    后台管理+vue+axios+elementUI

    后台管理vue+axios+elementUI,iviewUI,其实我也不知道我要说什么,这是第一篇博文,纪念一下,未来的全栈大佬

    Flink1.9系列-connnector-redis篇

    作为2020年的第一篇博文,再不写的话就对不起大家了!!! 好,废话少说,今天这篇文章主要是解决你在做实时计算的时候,将数据sink到redis的种种问题 实时计算流程框架其实比较简单,目前比较流行的也就是kafka+...

    福建省泉州市泉港博文2013届九年级英语第一次月考试题(无答案) 人教新目标版 试题.doc

    这篇文档是关于“福建省泉州市泉港博文2013届九年级英语第一次月考试题”的一份中学试卷,属于人教新目标版的教学材料。试卷的目的是检验学生对英语知识的掌握程度,包括听力理解、语法、词汇以及口语交流等方面的...

    珍藏版缠论,珍藏版缠论108课课文配图,Java

    其次,要学会识别不同的买卖点,如第一类买卖点通常对应于最强烈的趋势变化,而第二、第三类买卖点则提供了更多的交易机会。再者,理解走势级别的概念至关重要,因为这关系到交易的周期选择和风险控制。最后,掌握...

    福建省泉州市泉港博文中学2020届九年级英语第一次月考试题(无答案) 仁爱版.doc

    这篇文档是关于福建省泉州市泉港博文中学2020届九年级英语第一次月考试题的,使用的是仁爱版教材。试题分为不同部分,包括选择填空等,旨在检验学生对英语知识的掌握程度。从题目内容来看,涉及了语法、词汇、句型...

    福建省泉州市泉港博文中学2020届九年级英语第一次月考试题(无答案) 人教新目标版.doc

    这篇文档是福建省泉州市泉港博文中学2020届九年级英语的第一次月考试题,采用的是人教新目标版教材。试卷分为第一卷和第二卷,主要测试学生的英语听力和笔试能力,总时长120分钟,总分150分。 第一卷的第一部分为...

    博文高中一年级期中试题.doc

    1. **听力理解技巧**:试卷中的第一部分是“听句子,选答语”,这要求学生具备快速理解和反应的能力,能准确捕捉到对话中的关键信息,如日期、人物活动、地点等。这种类型的题目训练了学生的即时听力反应和词汇理解...

    c语言实现井字棋(计算机策略已有,不可能战胜,不信可以试试(狗头))

    欢迎来玩哦,计算机算法已经完善,...这样的程序也不难,可以看我发的第一篇博文,随意拿走,发给你的朋友,让他对你刮目相看,嘿嘿。 当然,对于大佬来说就没必要啦,哈哈。 总之,欢迎大家来玩,也欢迎拿走,免费的。

    算法之道--CSDN博客博文集锦第一期CHM文件

    此份文件是截止到2011年2月27日,结构之法算法之道博客内的第一期的全部内容的集锦,同时,本博客永久更新,永久维护。本文件包含了十个经典算法的研究,微软面试的全部100 题,及前60 的答案。包括结构之法算法之道...

    VS2022联合Qt5开发项目(复杂堆栈窗体)

    这个项目里的堆栈窗体分为三个窗口,第一个窗口可用于圆面积的计算(具体代码实现步骤和解析大家可以看一下这篇博文:https://blog.csdn.net/weixin_52194015/article/details/134014861),第二个窗口是四则运算,...

    实体框架之领域驱动实践(二)

    我在本系列的第一篇博文中就已经提到,这种做法并不可取!因为存储过程是技术架构中的内容,而我们所关注的却是领域模型。AndreyYemelyanov在其“UsingADO.NETEFinDDD:APatternApproach”一文中,有下面这段话:...

    NYCBuildingEnergyUse:在Google Cloud上创建建筑排放的回归模型

    在第一篇博文中,我将介绍如何执行数据清理的基础知识,包括: 探索性数据分析 识别和删除异常值 由于我将花费数天的时间并使用完成该项目,因此我将介绍使用存储数据集的基础知识,这样我就不必在每次工作时都从头...

Global site tag (gtag.js) - Google Analytics