导读:
4. Josso与Web应用安全 策略的管理
Josso在Web应用安全策略的管理主要通过JBoss容器的进行用户权限的分配和取消。它的整个应用模型主要是基于JAAS的安 全策略模型进行拓展,并对Web页面层和EJB应用组件分别进行安全控制,下面我们通过Josso自带的一个例子来说明。
Web页面层的安全控制是在web.xml中通过 、 和 标签定义来实现的。
以下是Josso中partnerapp例子对Web页面层的安全控制实现:
public-resources
/resources/**//*
HEAD
GET
POST
PUT
DELETE
protected-resources
/josso/*
/protected/*
HEAD
GET
POST
PUT
DELETE
role1
NONE
FORM
/login-redirect.jsp
/login-redirect.jsp
Role 1
role1
对于EJB应用组件只需在ejb-jar.xml的部署描述符中添加 中定义相应的安全策略,对于JBoss来说同时还需要在jboss.xml中添加 ,以保证当前域的安全策略生效。在partnerapp中的实现如下:
Partner Component
PartnerComponentEJB
org.josso.samples.ejb.PartnerComponentHome
org.josso.samples.ejb.PartnerComponent
org.josso.samples.ejb.PartnerComponentEJB
Stateless
Container
Role 1
role1
Security attributes for 'PartnerComponenttEJB' methods
role1
PartnerComponentEJB
*
PartnerComponentEJB
*
Required
"-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd"> "-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
java:/jaas/josso
PartnerComponentEJB
josso/samples/PartnerComponentEJB
以上是Josso对Web应用层和EJB组件所关联的安全策略的部署描述,另外在Josso验证的验证过程中,登陆页面、注销页面和通过验证后用户的信息都是通过JBoss服务器支持的单点登陆模式来实现的。JBoss服务器支持的登录验证机制主要有:基于HTTP的基本验证(采用简单的Base64编码),基于HTTPS的客户端验证(采用证书验证),基于表单验证(通过表单提交的信息,自己定制验证方式)等;而通过验证后的用户信息可以通过Servlet的request对象的getUserPrincipal()方法来获得。在这里我们就不多做介绍。相关的信息可以查阅JBoss及Servlet的文档。
5. 小结
单点登陆(SSO)是一个很大的议题,在本文中笔者只是简单地通过对单点登陆(SSO)的实现原理和Josso在JBoss环境下的实施的介绍,让读者在一个侧面对单点登陆(SSO)有一定认识。进入讨论组讨论。
4. Josso与Web应用安全 策略的管理
Josso在Web应用安全策略的管理主要通过JBoss容器的进行用户权限的分配和取消。它的整个应用模型主要是基于JAAS的安 全策略模型进行拓展,并对Web页面层和EJB应用组件分别进行安全控制,下面我们通过Josso自带的一个例子来说明。
Web页面层的安全控制是在web.xml中通过 、 和 标签定义来实现的。
以下是Josso中partnerapp例子对Web页面层的安全控制实现:
public-resources
/resources/**//*
HEAD
GET
POST
PUT
DELETE
protected-resources
/josso/*
/protected/*
HEAD
GET
POST
PUT
DELETE
role1
NONE
FORM
/login-redirect.jsp
/login-redirect.jsp
Role 1
role1
对于EJB应用组件只需在ejb-jar.xml的部署描述符中添加 中定义相应的安全策略,对于JBoss来说同时还需要在jboss.xml中添加 ,以保证当前域的安全策略生效。在partnerapp中的实现如下:
Partner Component
PartnerComponentEJB
org.josso.samples.ejb.PartnerComponentHome
org.josso.samples.ejb.PartnerComponent
org.josso.samples.ejb.PartnerComponentEJB
Stateless
Container
Role 1
role1
Security attributes for 'PartnerComponenttEJB' methods
role1
PartnerComponentEJB
*
PartnerComponentEJB
*
Required
"-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd"> "-//JBoss//DTD JBOSS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
java:/jaas/josso
PartnerComponentEJB
josso/samples/PartnerComponentEJB
以上是Josso对Web应用层和EJB组件所关联的安全策略的部署描述,另外在Josso验证的验证过程中,登陆页面、注销页面和通过验证后用户的信息都是通过JBoss服务器支持的单点登陆模式来实现的。JBoss服务器支持的登录验证机制主要有:基于HTTP的基本验证(采用简单的Base64编码),基于HTTPS的客户端验证(采用证书验证),基于表单验证(通过表单提交的信息,自己定制验证方式)等;而通过验证后的用户信息可以通过Servlet的request对象的getUserPrincipal()方法来获得。在这里我们就不多做介绍。相关的信息可以查阅JBoss及Servlet的文档。
5. 小结
单点登陆(SSO)是一个很大的议题,在本文中笔者只是简单地通过对单点登陆(SSO)的实现原理和Josso在JBoss环境下的实施的介绍,让读者在一个侧面对单点登陆(SSO)有一定认识。进入讨论组讨论。