当前位置:科技动态 > 在不修改代码的情况下增强Servlet和JSP的安全性

在不修改代码的情况下增强Servlet和JSP的安全性

  • 发布:2023-10-06 16:01

编写Servlet和JSP很容易,但通常我们会面临很多安全问题。当然,我们会在程序中添加大量的安全代码来解决这个问题,但是添加这样的安全硬编码会让程序不灵活,难以维护。因此,中将在这篇文章中给出了一种无需修改代码即可达到安全目的的方法,并提供了一个例子来说明。本文中的示例将使用用户名和密码以及传输层的 SSL 来保护应用程序的 war 文件。用户名和密码以明文形式通过网络传输。所有这一切都不需要编辑应用程序中的Java代码和JSP页面。为了使Servlet和JSP页面安全,我们所要做的就是配置web.xml文件。 1. 设置 XML 文件 配置 web.xml 文件的第一步是定义安全约束,它是一个 标签。此标记将保护响应 URL,以便只有特定用户才能访问它。请注意,我们必须使用 标签来定义一个或多个 HTTP 方法。如果您希望安全约束应用于所有 HTTP 方法,只需忽略 标签即可。完成上述设置后,下一步就是设置SSL。我们可以使用标签和该标签的子标签来设置。但 的值设置为 CONFIDENTIAL。最后一步是设置验证方法。这需要设置标签和子标签。这里我们将 设置为 BASIC。以下是 web.xml 文件的一部分: < web-resource-collection> Servlet 应用程序 /* ttrole 机密                                                                                 BASIC 默认 ttrole 在上面的示例中,只有用户“ttrole”可以访问Servlet 和JSP 页面。在 Java EE 环境中,中将 使用这些用户进行身份验证,但在许多操作系统环境中,用户和组是关联的。因此,安全角色映射提供了用户标头组之间的桥梁。在 Java EE 5 应用服务器中,我们可以在 sun-application.xml 文件中按字面定义 security-role-mapping 标记,如下所示: myrole myuser ttro le ttgroup arole ttuser 2. 运行示例代码 本节我们将讨论如何运行上述程序。我们这里使用的集成开发环境是NetBeans IDE 5.5和NetBeans Enterprise Development Kit。安装NetBeans后,我们需要执行以下步骤来运行该程序。 1.首先我们需要下载这个程序,下载链接为:示例代码。然后解压它。 2. 启动 NetBeans。 3. 打开webann 项目(刚才zip 文件中的NetBeans 项目)。如果出现“解决缺少服务器问题”消息,则表示应用程序服务器尚未添加到 NetBeans 服务器列表中。我们可以选择“工具”>“服务器管理器”,将相应的服务器添加到列表中。 4. 启动嵌入在 NetBeans 中的 Sun Java System Application Server。我们也可以通过在命令中输入以下命令来启动服务器: /bin/asadmin start-domain domain1 上面的是应用服务器的安装目录。 5. 创建用户。我们可以通过管理控制台(默认为http://localhost:4848)来完成此操作,您可以按照以下步骤操作: (1) 从左侧管理树中选择“配置”>“安全”>“领域”>“文件”。 (2) 单击“管理用户”,然后单击“新建”。 (3) 输入信息。用户 ID:ttuserGroup 列表:ttgroup新密码:ttpassword确认新密码:ttpassword(4) 单击“确定”保存设置。 创建第一个用户后,使用相同的方法创建第二个用户ttusers2。输入以下信息: 用户 ID:ttuser2Group 列表:ttgroupNew 密码:ttpasswordConfirm 新密码:ttpassword 6. 按照以下步骤编译 NetBeans 项目: (1) 右键单击​​项目窗口中的 webann 节点。 (2) 选择“清理并构建项目”。在此步骤中,中将 创建了ear 文件并将它们放置在webann/dist 目录中。 7. 按照以下步骤发布ear 文件: (1) 右键单击​​项目中的webann 节点。 (2) 选择“部署项目”。除了上述发布方式外,我们还可以通过以下方式通过管理界面进行发布: (1) 在左侧控制树中选择“应用程序 > 企业应用程序”。 (2) 单击“部署”。 (3) 单击“浏览器”按钮找到ear 文件。 (4) 单击“确定”。我们也可以通过以下命令行发布ear文件:asadmin deploy webann.ear 8.接下来我们启动浏览器,在地址栏中输入https://:是host 名称,如果是本机则为“localhost”,为HTTPS端口,如8181。由于浏览器不同,看到的验证信息可能会有所不同,但一般会出现“未知权限”出现。这是因为此示例使用自签名验证。然后,浏览器将显示一个选项,询问您是否继续浏览该应用程序。如果我们选择继续浏览该应用程序,系统将提示我们输入用户名和密码。如果我们使用 ttuser 登录,我们将看到类似于以下内容的响应消息: Hello, ttuserEjb Message: Hello, World, Sat Jun 30 12:04:46 PDT 2007DataSource login timeout: 0 如果我们使用 ttuser2 登录,我们将看到类似以下内容的响应消息:Hello, ttuser2DataSource login timeout: 0 他们的响应信息之所以不同,是因为他们的角色不同。用户 ttuser 具有“ttrole”和“arole”。而 ttuser2 只有“ttrole”而没有“arole”。在此应用程序中,只有具有“arole”角色的用户才能调用 SlessLocal.hello(String message) 方法,该方法返回“Hello, World”消息。 当我们运行完这个程序后,我们可以按照以下步骤卸载ear文件: 1.通过管理界面卸载ear文件。 (1) 在左侧功能树中选择“应用程序 > 企业应用程序”。 (2) 选择“webann”,然后单击“取消部署”。 2. 通过管理界面删除用户。 (1) 选择配置 > 安全 > 领域 > 文件 (2) 单击“管理用户”。 (3) 选择ttuser 和ttuser2。 (4) 单击“删除”。 【编辑精选】 如何提高Servlet和JSP应用程序的效率 Flex与Jsp之间传递中文参数 JSP数据库链接简介 我国IPTV科研项​​目领先世界 3G和IPTV是发展的大方向

相关文章