我们将我们的网络应用程序作为.war
文件分发给我们的客户。这样,用户可以将战争部署到他们的容器中,他们很高兴。问题是我们的一些客户希望进行身份验证,并使用用户名作为应用程序中某些操作的参数。
我知道如何使用web.xml配置它,但这意味着我们要么告诉我们的客户在war文件中进行黑客攻击,要么分发2个单独的战争;一个具有身份验证(和预定义角色),一个没有。
我也不想强迫我们的客户进行身份验证,因为这需要更多关于Java容器和Web服务器的知识,并且使我们的应用程序更难以用于测试驱动器。
有没有办法在容器中进行身份验证配置,而不是在web-app本身?
答案 0 :(得分:2)
在web.xml中,定义安全性约束以将Web资源集合绑定到J2EE角色和登录配置(对于希望对应用程序的某些资源进行访问控制的客户)。
然后,让客户将Web应用中定义的J2EE角色绑定到用户组特定用户和应用服务器上定义的组。不希望任何访问控制的客户可以将所有角色绑定到未授权用户(该用户组的名称特定于appserver,例如Websphere称为'Everyone')。希望将对Web应用程序中的资源的访问权限限制为有限的一组用户或用户组的客户可以通过将角色绑定到用户/组来满足其需求。
如果需要身份验证来验证用户在角色中的成员身份,则将使用web.xml中login config中指定的身份验证方法。
答案 1 :(得分:0)
通常的做法是将用户信息存储在例如数据源(数据库)。让您的应用程序使用相同的数据源进行身份验证。数据库相对容易维护。您甚至可以实现一些管理页面来维护应用程序内的用户信息。
答案 2 :(得分:-1)
许多容器(如Glassfish)为JDBC领域提供支持。在这种情况下,您可以为组配置访问权限(例如,在web.xml中),并让客户配置用户名,密码和组成员身份。