javaee6:应用程序安全增强

javaee6:应用程序安全增强

ID:32821013

大小:58.07 KB

页数:4页

时间:2019-02-16

javaee6:应用程序安全增强_第1页
javaee6:应用程序安全增强_第2页
javaee6:应用程序安全增强_第3页
javaee6:应用程序安全增强_第4页
资源描述:

《javaee6:应用程序安全增强》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JavaEE6:应用程序安全增强作者SriniPenchikala译者金明发布于2010年7月16日上午6时49分JEE6在web容器的安全以及Java应用程序开发中的认证和授权方面引入了一些新的安全特性。这些特性在Web层引入了编程式和声明式的安全增强。基于Servlet3.0规范(JSR315),JavaEE6Web应用程序可以利用新的编程式和声明式的安全特性,以及此前在EJB3.x就已引入的安全注解。Web应用程序还可以使用基于JSR196的插件式的认证/授权模块,这些模块可以作为Servlet容器的一部分。Web模块安全Web模块安全的实现包括编程式(使用HttpS

2、ervletRequest中新加入的安全方法)和声明式(使用新的安全注解)。编程式安全可以使用HTTPServletRequest中新加入的方法以编程的方式访问容器上下文。Servlet3.0规范在HttpServletRequest接口中定义了如下方法,这些方法可以在Web应用中认证用户的身份。•authenticate:这个方法使用ServletContext上配置的容器登录机制认证用户请求。此方法可以修改并提交HttpServletResponse0如果应用配置了基本类型的身份认证就会弹出一个登录对话框,收集用户名和密码并进行认证。•login:login方法在Web

3、容器所使用的安全域(realm)中验证用户名和密码。应用程序可以使用该方法获取用户名和密码信息,这样除了在应用程序的部署描述符屮指定基于表单的认证方式外,还可以编程的方式进行控制。•logout:Web应用程序可以使用该方法重置请求者的身份信息,如果在同一个请求中调用了getUserPrincipaKgetRemotellser和getAuthType等方法,那么它会将这些方法的返冋值设为null。HttpServletRequest接口的如下方法也可以访问组件调用者的安全信息:•getRemotellser:此方法可以获取客户端通过认证的用户名。此方法返回远程用户(已经由

4、容器将其与请求关联在一起)的名字。如果没有用户通过身份认证,则返回null。•isUserlnRole:此方法判定远程用户是否具有特定的安全角色。如果没有用户通过身份认证,则返回falseo此方法接受一个用户角色名的字符串参数。应该在部署描述符中声明security-role-ref元素,其子元素role-name包含了传递给方法的角色名。•getUserPrincipal:getUserPrinicipal方法用来判断当前用户的principal名,并返冋一个iava.securitv.Principal对象。如果没有用户通过身份认证,则返回nulL调用getUserPr

5、incipal返回的Principal对彖的getName方法会返回远程用户名。声明式安全新的注解也可以用来增强Web模块的安全性。我们可以通过JavaEE6提供的注解和部署描述符进行认证、授权及传输层加密。JavaEE6的新注解列举如下:•@ServletSecurity:@ServletSecuritv可用于Servlet的实现类,指定Servlet容器对HTTP协议报文进行验证的安全约束。Servlet容器会对匹配的Servlet所对应的url-patterns施加这些约束。•@HttpMethodConstraint:@HttpMethodConstraint用在@

6、ServletSecurity注解的内部,表述了加于特定HTTP协议报文Z上的安全约束。这是一个数组,指定了HTTP方法的具体约束。•@HttpConstraint:该注解用在@ServletSecurity注解的内部,表述了针对所有HTTP方法(除了在Servletsecurity注解的内部已经指定了对应的HttpMethodConstraint元素)进行防护南安全约束。•@DeclareRoles:@DeclareRoles是一个类级别的注解,这是CommonAnnotations1.0(JSR250)规范的一部分,它与定义应用程序所使用角色的security-role

7、元素的效果和仿。它应该先于其他引用具体角色的地方进行定义。•@RunAs:@RunAs注解也是CommonsAnnotations1.0的一部分,用來规定特殊组件的run-as角色。你可以规定是应该使用调用者的安全标识,还是应该使用一个特定的run-as标识来执行企业bean的特定方法。这个注解也是类级别的注解。如果Web应用程序由Servlet组成,在@ServletSecurity注解的内部使用@HttpConstraint注解和@HttpMethodConstraint注解(在某些情况下)来规定应用程序的安全

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。