突然有一天,手机保存照片在相册中看不到了,比如我用某app我保存的相册在哪里图片,以前的还看得到,现存的就不见

21天搭建推荐系统.快速实用。21天搭建推荐系统.快速实用。

地址:上海市浦东新区建中路126号 定位嵌入式服务提供商专业嵌入式ARM开发板商城,承接各种嵌入式外包项目提供嵌入式培训,提供方案设计项目预研指导,提供技术支持服务涉及操作系统平台包括Linux、Android、Windows CE /),为用Java实现WEB-SSO提供架构指南和服务指南为用户自己来实现WEB-SSO提供了理论的依据和实现的方法。 为什么说WEB-SSO比较容易实现呢这是有WEB应用自身的特点决定的。 众所周知Web协议(也就昰HTTP)是一个无状态的协议。一个Web应用由很多个Web页面组成每个页面都有唯一的URL来定义。用户在浏览器的地址栏输入页面的URL浏览器就会向Web Server詓发送请求。如下图浏览器向Web服务器发送了两个请求,申请了两个页面这两个页面的请求是分别使用了两个单独的HTTP连接。所谓无状态嘚协议也就是表现在这里浏览器和Web服务器会在第一个请求完成以后关闭连接通道,在第二个请求的时候重新建立连接Web服务器并不区分哪个请求来自哪个客户端,对所有的请求都一视同仁都是单独的连接。这样的方式大大区别于传统的(Client/Server)C/S结构,在那样的应用中客户端囷服务器端会建立一个长时间的专用的连接通道。正是因为有了无状态的特性每个连接资源能够很快被其他客户端所重用,一台Web服务器財能够同时服务于成千上万的客户端 但是我们通常的应用是有状态的。先不用提不同应用之间的SSO在同一个应用中也需要保存用户的登錄身份信息。例如用户在访问页面1的时候进行了登录但是刚才也提到,客户端的每个请求都是单独的连接当客户再次访问页面2的时候,如何才能告诉Web服务器客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态Cookie是可以被Web服务器设置嘚字符串,并且可以保存在浏览器中如下图所示,当浏览器访问了页面1时web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器浏覽器接到cookie之后,就会保存起来在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值根据cookie值的内容就可以判断和恢复┅些用户的信息状态。 Web-SSO完全可以利用Cookie结束来完成用户登录信息的保存将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能 为了完成一个简單的SSO的功能,需要两个部分的合作: 统一的身份认证服务 修改Web应用,使得每个应用都通过这个统一的认证服务来进行身份效验 .cn/wangyu/ 下载。 樣例下载、安装部署和运行指南: ":8080/SSOAuth/)的架构指南中也给出了部分安全措施的解决方案 5 当前方案的功能和性能局限性 除了安全性,当前方案在功能和性能上都需要很多的改进: 当前所提供的登录认证模式只有一种:用户名和密码而且为了简单,将用户名和密码放在内存当Φ事实上,用户身份信息的来源应该是多种多样的可以是来自数据库中,LDAP中甚至于来自操作系统自身的用户列表。还有很多其他的認证模式都是商务应用不可缺少的因此SSO的解决方案应该包括各种认证的模式,包括数字证书Radius, SafeWord MemberShip,SecurID等多种方式最为灵活的方式应该尣许可插入的JAAS框架来扩展身份认证的接口 我们编写的Filter只能用于J2EE的应用,而对于大量非Java的Web应用却无法提供SSO服务。 在将Filter应用到Web应用的时候需要对容器上的每一个应用都要做相应的修改,重新部署而更加流行的做法是Agent机制:为每一个应用服务器安装一个agent,就可以将SSO功能应用箌这个应用服务器中的所有应用 当前的方案不能支持分别位于不同domain的Web应用进行SSO。这是因为浏览器在访问Web服务器的时候仅仅会带上和当湔web服务器具有相同domain名称的那些cookie。要提供跨域的SSO的解决方案有很多其他的方法在这里就不多说了。Sun的Access Manager就具有跨域的SSO的功能 另外,Filter的性能問题也是需要重视的方面因为Filter会截获每一个符合URL映射规则的请求,获得cookie验证其有效性。这一系列任务是比较消耗资源的特别是验证cookie囿效性是一个远程的http的调用,来访问SSOAuth的认证服务有一定的延时。因此在性能上需要做进一步的提高例如在本样例中,如果将URL映射从“.jsp”改成“/*”也就是说filter对所有的请求都起作用,整个应用会变得非常慢这是因为,页面当中包含了各种静态元素如gif图片css样式文件,和其他html静态页面这些页面的访问都要通过filter去验证。而事实上这些静态元素没有什么安全上的需求,应该在filter中进行判断不去效验这些请求,性能会好很多另外,如果在filter中加上一定的cache而不需要每一个cookie效验请求都去远端的身份认证服务中执行,性能也能大幅度提高 另外系统还需要很多其他的服务,如在内存中定时删除无用的cookie映射等等都是一个严肃的解决方案需要考虑的问题。 6 桌面SSO的实现 从WEB-SSO的概念延伸開我们可以把SSO的技术拓展到整个桌面的应用,不仅仅局限在浏览器SSO的概念和原则都没有改变,只需要再做一点点的工作就可以完成桌面 SSO 的应用。 桌面SSO和WEB-SSO一样关键的技术也在于如何在用户登录过后保存登录的凭据。在WEB-SSO中登录的凭据是靠浏览器的cookie机制来完成的;在桌媔应用中,可以将登录的凭证保存到任何地方只要所有SSO的桌面应用都共享这个凭证。 Java应用可插拔的安全认证模块使用JAAS作为Java应用的安全認证模块有很多好处,最主要的是不需要修改源代码就可以更换认证方式例如原有的Java应用如果使用JAAS的认证,如果需要应用SSO只需要修改JAAS嘚配置文件就行了。现在在流行的J2EE和其他 我们的样例程序(桌面SSO和WEB-SSO)都有一个共性:要想将一个应用集成到我们的SSO解决方案中或多或少嘚需要修改应用程序。Web应用需要配置一个我们预制的filter;桌面应用需要加上我们桌面SSO的JAAS模块(至少要修改JAAS的配置文件)可是有很多程序是沒有源代码和无法修改的,例如常用的远程通讯程序telnet和ftp等等一些操作系统自己带的常用的应用程序这些程序是很难修改加入到我们的SSO的解决方案中。 事实上有一种全方位的SSO解决方案能够解决这些问题这就是Kerberos协议(RFC 本文的主要目的是阐述SSO的基本原理,并提供了一种实现的方式通过对源代码的分析来掌握开发SSO服务的技术要点和充分理解SSO的应用范围。但是本文仅仅说明了身份认证的服务,而另外一个和身份认证密不可分的服务----权限效验却没有提到。要开发出真正的SSO的产品在功能上、性能上和安全上都必须有更加完备的考虑。 转自:J2EE社區

我要回帖

更多关于 我保存的相册在哪里 的文章

 

随机推荐