2009-02-03 39 views
1

我们将我们的网络应用程序作为.war文件分发给我们的客户。这样,用户就可以将战争部署到他们的容器中,并且他们很容易就可以走。问题是,我们的一些客户希望认证,并使用用户名作为应用程序内某些操作的参数。在容器中指定身份验证而不是在web.xml中

我知道如何使用web.xml来配置它,但这意味着我们要么告诉我们的客户在war文件中破解,要么分发2个单独的战争;一个带有认证(和预定义的角色),一个没有。

我也不想强制对客户进行身份验证,因为这需要更多关于Java容器和Web服务器的知识,并且使我们的应用程序更难以进行测试。

有没有办法在容器中进行身份验证配置,而不是在web-app本身?

+0

你是什么意思的“认证”?验证什么?哪个容器? – 2009-02-03 10:38:46

回答

2

在web.xml中,定义安全约束以将Web资源集合绑定到J2EE角色和登录配置(对于需要对应用程序的某些资源进行访问控制的客户)。

然后,让客户将在您的Web应用程序中定义的J2EE角色绑定到在其应用程序服务器上定义的用户组特定用户和组。不需要任何访问控制的客户可以将所有角色绑定到未经授权的用户(该用户组的名称特定于应用服务器,例如Websphere称其为“每个人”)。如果客户希望将对Web应用程序中的资源的访问限制为有限的一组用户或用户组,可以按照用户的需求将角色绑定到用户/组。

如果需要进行身份验证以验证用户在角色中的成员身份,则将使用web.xml中登录配置中指定的身份验证方法。

0

通常的做法是将用户信息存储在例如一个数据源(数据库)。让您的应用程序使用相同的数据源进行身份验证。数据库相对容易维护。您甚至可以实施一些管理页面来维护应用程序内的用户信息。

-1

许多容器(如Glassfish)都提供对JDBC领域的支持。在这种情况下,您可以为组配置访问权限(例如,在web.xml中),并让客户配置用户名,密码和组成员身份。