论道WP(三):应用程序栏
作者通过具体翔实的例子介绍了Winodws Phone 7中应用程序栏的使用方式。
该内容已经被标记书签!
标记书签错误,请重试!

作者 Srini Penchikala 译者 杨娟 发布于 2011年2月3日
Masoud Kalali编著的《GlassFish安全》涵盖的内容有:Java EE安全模型;如何在Java EE应用中设计开发安全的Web、EJB模块,并将它们部署到GlassFish服务器环境中。Masoud在书里还详细介绍了GlassFish应用服务器和OpenDS目录服务器的安装及配置,OpenDS主要用来实现基于轻量级目录访问协议(LDAP)的用户认证和授权。
本书还介绍了用OpenSSO框架实现单点登录(SSO)的解决方案,其中包括用RESTful Web Services对用户进行认证和授权、通过OpenSSO解决方案确保Java EE应用和Web Services的安全。
InfoQ就此书对Masoud进行了采访,和他讨论了写作动机、Java EE 6里的安全新特性及其他一些话题。此外,InfoQ还为读者准备了本书的书摘(第三章:设计、开发安全的Java EE应用;778 KB的PDF)。
InfoQ:你为什么编写这本书呢?
Masoud Kalali:写这本书的原因有很多,但最主要的还是以下几点:
开发人员清晰地理解安全、尤其是Java EE安全是很重要的,这就是写这本书最重要的原因。我认为对Java EE领域的开发人员来说,掌握Java EE安全的基础知识至关重要,所以在书里我用简单却详尽的方式对安全进行了阐述。
另一方面,GlassFish是一款优秀的应用服务器产品,要在生产环境中使用GlassFish,理解它的安全机制是很有必要的。
最后就是想用比参考文档更容易理解的方式,向那些对安全感兴趣的开发人员介绍Java EE 6引入的安全新特性。
InfoQ:对Java EE 6引入的安全新特性,你是怎么看的?
Masoud:和Java EE的其他服务、组件相比,安全并没有太多的变化。EJB和Web层在Java EE 5和Java EE 6里都有非常大的变化,再看看安全,尽管Java EE 6在平台安全方面添加了一些新鲜气息,但我觉得我们仍然有进步的空间。
InfoQ:Web层组件Servlet现在可以通过声明(@ServletSecurity注解)和编程方式(HTTPServletRequest接口增加的login和authenticate方法)支持认证。你如何看待Web层提供的这种安全支持?
Masoud:现在的开发和部署都从XML描述符转向了注解,增加注解符合这一趋势。但编程方式的安全增强则更有意思一些,login、logout这些方法能让开发人员更好地控制认证和授权过程。很高兴Java EE平台能有更好的安全特性。
InfoQ:和Spring安全 3等其他安全框架相比,Java EE 6里的安全新特性怎么样?
Masoud:我觉得不能简单地把Java EE平台安全和Spring安全放在一起比较,顾名思义,前者是平台级的,后者只是基于平台构建、处理更细粒度需求的框架。当我们通盘使用Spring框架,或者软件架构师确信系统不需要十分细致的安全集成方案时,使用Spring安全就可以了。
Java EE平台提供的安全机制无法满足需求的时候,我倾向于使用OpenSSO之类的产品,OpenSSO不仅能非侵入式地和Java应用集成,还可以让Java应用从本地或通过RESTful接口调用其他编程语言,从而使用相同的基础设施。
InfoQ:安全相关的其他JSR是怎样和Java安全模型保持一致的呢?比如JASPIC(Java Authentication Service Provider Interface for Containers,JSR 196)和JACC(Java Authorization Contract for Containers,JSR 115)。
Masoud:众所周知,产品的可插拔性和扩展性在产品需要添加新特性的时候非常有用。我们发现,当产品A支持的契约接口同样被其他类似产品支持的时候,可插拔性会更加重要。
JSR-196和JSR-115这两个规范提供的大纲和契约接口统一了Java EE应用服务器的认证和授权模型。
JSR-196的目标对象不是应用开发人员,而是框架和安全产品的开发人员,因为它能简化不同认证模型和Java EE应用服务器之间的集成。使用JSR-196 SPI,开发人员可以开发自己的认证模块、把该模块插入应用服务器、对认证模块进行配置,并拦截服务器和客户端之间传输的消息。可以在四个点进行消息拦截:
消息拦截的使用示例可以参看GlassFish应用服务器的消息安全,Metro Web Services框架就是利用消息拦截提供了容易配置、容易管理的Web Services安全。
JSR-196的另一个应用场景是把OpenID等“none-supported”的认证模型集成到应用服务器当中,然后在部署到应用服务器里的应用中使用这些认证模型。
我们一提到安全,首先想到的两件事情就是认证和授权,正如我前面所说的,JSR-196为Java EE应用服务器提供了统一的验证机制。JSR-115提出的SPI则允许模块开发人员用自己的逻辑定义主体、定义角色、检查主体是否具有特定的角色,从而为支持JSR的Java EE应用服务器增加新的授权模型。
InfoQ:你希望Java EE后续的版本中能增加哪些安全特性呢?
Masoud:我希望能让开发人员更自由地控制整个认证和授权过程,不论使用缺省配置还是使用自己的配置和定制。目前,有些框架有专门的安全层,比如Seam;还有些框架给开发人员提供了很不错的安全方法定制,比如Spring安全;我期望能有一些基于角色的访问控制,也期望SSO能更加广泛地应用。OpenSSO、Oracle访问管理器、IBM Tivoli访问管理器等访问管理产品现在都开始支持刚刚提到的这些功能、以及很多其他的安全集成特性了。
InfoQ:谢谢你接受我们的采访。最后一个问题,你喜欢的IT类图书和非IT类图书分别是什么?
Masoud:说到IT类图书,我喜欢《大型软件体系结构:使用UML实践指南》,最喜欢的非IT类图书则是《魔戒》系列。
查看英文原文:Interview and Book Excerpt: Masoud Kalali’s GlassFish Security
感谢王丽娟对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。 InfoQ就此主题对他做了深入的采访。
没有回复
关注此讨论 回复