在 NetBeans IDE 中保护 Web 应用程序的安全
由 Dan Kolar 撰稿,James Branam 和 Jeff Rubinoff 维护
本文档介绍在部署到 Oracle GlassFish Open Source Edition、Oracle WebLogic 或 Apache Tomcat 服务器的 Web 应用程序中添加安全功能的基础知识。
本文档介绍了如何使用基本登录窗口以及 Web 页中的登录窗体配置安全验证。本文档还将指导您完成在 Tomcat 和 GlassFish Server 上创建用户的步骤。创建用户之后,然后可以通过在部署描述符中设置安全属性创建安全角色。本文档还介绍了在将应用程序部署到 GlassFish Server 时,如何使用 JDBC 验证来保护应用程序的安全。
预计时间:40 分钟
目录
要学习本教程,您需要具备以下软件和资源。
NetBeans IDE |
Java EE 版本 |
Java 开发者工具包 (JDK) |
版本 7 或 8 |
Java EE 平台 |
Java EE 6 或 7 |
Travel 数据库 |
无版本要求 |
符合 Java EE 规范的 Web 服务器或应用服务器 |
Tomcat Web 服务器 7.x 或 8.x、Oracle WebLogic 11g 或 GlassFish Server Open Source Edition 4.x
|
安装和配置工作环境
安装并启动 NetBeans IDE。可以使用捆绑的 Tomcat 服务器或 GlassFish Server 完成本教程。
确保已安装服务器,并已在 IDE 中注册服务器实例。可以使用服务器管理器来注册已安装的服务器实例。(选择 "Tools"(工具)> "Servers"(服务器)> "Add Server"(添加服务器)。选择 "GlassFish Server <version number>"(GlassFish Server <版本号>)或 "Tomcat <version number>"(Tomcat <版本号>),然后单击 "Next"(下一步)。单击 "Browse"(浏览)并找到该应用服务器的安装目录。单击 "Finish"(完成)。
创建 Web 应用程序
在本练习中,您首先将创建 Web 应用程序项目和目录结构。然后在每个安全目录中创建一些简单的 html 文件。Web 应用程序使用基本登录验证来访问安全目录。如果希望使用登录窗体进行验证,则可以向窗体添加 jsp 页。
创建安全目录
- 选择 "File"(文件)> "New Project"(新建项目)(Ctrl-Shift-N 组合键),从 Java Web 类别中选择 "Web Application"(Web 应用程序),然后单击 "Next"(下一步)。
- 将项目命名为 WebApplicationSecurity。接受默认设置。
- (可选)选中“使用专用文件夹存储库”复选框,并指定库文件夹的位置。有关此选项的详细信息,请参见使用 NetBeans IDE 开发应用程序中的与其他用户共享库。
- 单击 "Next"(下一步)。
- 选择要在其中部署应用程序的服务器。这里仅列出了已在 IDE 中注册的服务器。单击 "Next"(下一步)。
- 不需要添加框架,因此请单击 "Finish"(完成)。
- 如果创建了一个 EE 6 应用程序,请转到 IDE 的 "Projects"(项目)窗口,右键单击该项目的节点,然后选择 "New"(新建)> "Other"(其他)> "Web" > "Standard Deployment Descriptor (web.xml)"(标准部署描述符 (web.xml))。接受所有默认值,然后单击相应的按钮以完成向导。
注:本教程介绍了如何在部署描述符中配置安全功能,但 EE 6 和 EE 7 应用程序默认使用标注,而不是部署描述符。
- 如果使用 GlassFish 或 WebLogic Server 以及 NetBeans IDE 7.0.1 或更高版本,则需生成特定于服务器的描述符。右键单击项目的节点并选择 "New"(新建)> "Other"(其他)> "GlassFish" > "GlassFish Descriptor"(GlassFish 描述符),或选择 "New"(新建)> "Other"(其他)> "WebLogic" > "WebLogic Descriptor"(WebLogic 描述符)。"Create Server-Specific Descriptor"(创建特定于服务器的描述符)对话框将会打开。接受所有默认值,然后单击 "Finish"(完成)。特定于服务器的描述符(名为 glassfish-web.xml 或 weblogic.xml)将出现在项目中的 "Configuration Files"(配置文件)文件夹中。
- 在 IDE 的 "Projects"(项目)窗口中,右键单击 "Web Pages"(Web 页),然后选择 "New"(新建)> "Other"(其他)。
- 在新建文件向导中,选择 "Other"(其他)作为类别,选择 "Folder"(文件夹)作为文件类型。单击 "Next"(下一步)。
-
在新建文件夹向导中,将文件夹命名为 "secureAdmin",然后单击 "Finish"(完成)。
secureAdmin 文件夹将显示在 "Projects"(项目)窗口的 "Web Pages"(Web 页)文件夹中。
- 重复前面的 3 个步骤,以创建另一个名为 secureUser 的文件夹。
- 在 secureUser 文件夹中创建一个新的 html 文件,方法是在 "Projects"(项目)窗口中右键单击 secureUser 文件夹,然后选择 "New"(新建)> "Other"(其他)。
- 在 "Other"(其他)类别中选择 "HTML" 文件类型。单击 "Next"(下一步)。
- 将新文件命名为 "pageU",然后单击 "Finish"(完成)。
单击 "Finish"(完成),此时将在源代码编辑器中打开 pageU.html 文件。
- 在源代码编辑器中,将 pageU.html 中的现有代码替换为以下代码。
<html>
<head>
<title>User secure area</title>
</head>
<body>
<h1>User Secure Area</h1>
</body>
</html>
- 右键单击 secureAdmin 文件夹并创建一个新的名为 pageA 的 html 文件。
- 在源代码编辑器中,将 pageA.html 中的现有代码替换为以下代码。
<html>
<head>
<title>Admin secure area</title>
</head>
<body>
<h1>Admin secure area</h1>
</body>
</html>
创建 JSP 索引页
现在可以创建包含指向安全区域的链接的 JSP 索引页。当用户单击链接时,系统将提示他们输入用户名和口令。如果使用的是基本登录,将使用默认浏览器登录窗口进行提示。如果使用的是登录窗体页,则用户将在一个窗体中输入用户名和口令。
- 在源代码编辑器中打开 index.jsp,并将以下链接添加到 pageA.html 和 pageU.html:
<p>Request a secure Admin page <a href="secureAdmin/pageA.html">here!</a></p>
<p>Request a secure User page <a href="secureUser/pageU.html" >here!</a></p>
- 保存所做的更改。
创建“登录窗体”(对 Tomcat 为必选,对 GlassFish 或 WebLogic Server 为可选)
如果希望使用登录窗体而不使用基本登录,则可以创建一个包含窗体的 jsp 页。然后在配置登录方法时指定登录页和错误页。
重要说明:Tomcat 用户必须创建一个登录窗体。
- 在 "Projects"(项目)窗口中,右键单击 "Web Pages"(Web 页)文件夹并选择 "New"(新建)> "JSP"。
- 将文件命名为 login,保留其他字段的默认值,然后单击 "Finish"(完成)。
- 在源代码编辑器中,将以下代码插入到 login.jsp 的 <body> 标记之间。
<form action="j_security_check" method="POST">
Username:<input type="text" name="j_username"><br>
Password:<input type="password" name="j_password">
<input type="submit" value="Login">
</form>
- 在 "Web Pages"(Web 页)文件夹中创建一个新的名为 loginError.html 的 html 文件。这是一个简单的错误页。
- 在源代码编辑器中,将 loginError.html 中的现有代码替换为以下代码。
<html>
<head>
<title>Login Test: Error logging in</title>
</head>
<body>
<h1>Error Logging In</h1>
<br/>
</body>
</html>
在目标服务器上创建用户
要能够在 Web 应用程序中使用用户/口令验证(基本登录或基于窗体的登录)安全功能,必须为目标服务器定义用户及其相应角色。要登录到服务器,该服务器上必须存在用户帐户。
定义用户和角色的方式因指定的目标服务器而异。在本教程中,用户 admin 和 user 用于测试安全设置。您需要确认在相应的服务器上存在这些用户,并为这些用户指定了相应的角色。
在 GlassFish Server 上定义用户
对于本方案,需要使用 GlassFish Server 的管理控制台创建两个分别名为 user 和 admin 的新用户。名为 user 的用户对应用程序具有有限的访问权限,名为 admin 的用户具有管理权限。
-
通过转至 IDE 的 "Services"(服务)窗口并右键单击 "Servers"(服务器)> "GlassFish Server" > "View Domain Admin Console"(查看域管理控制台)打开 "Admin Console"(管理控制台)。GlassFish Server 的登录页将在浏览器窗口中打开。您需要使用管理员用户名和口令进行登录才能访问管理控制台。
注:必须运行应用服务器才能访问管理控制台。要启动服务器,请右键单击 GlassFish Server 节点并选择 "Start"(启动)。
- 在 "Admin Console"(管理控制台)中,导航至 "Configurations"(配置)> "server-config" > "Security"(安全性)> "Realms"(领域)> "File"(文件)。"Edit Realm"(编辑领域)面板将会打开。

- 单击 "Edit Realm"(编辑领域)面板顶部的 "Manage Users"(管理用户)按钮。将打开 "File Users"(文件用户)面板。
- 单击 "New"(新建)。将打开 "New File Realm User"(新建文件领域用户)面板。键入 user 作为用户 ID,键入 userpw01 作为口令。单击 "OK"(确定)。
- 按照前面的步骤在 file 领域中创建名为 admin、口令为 adminpw1 的用户。
在 Tomcat Web 服务器上定义角色和用户
对于 Tomcat 7,在 NetBeans IDE 中注册服务器时,将创建一个角色为 manager-script 的用户,并为该用户创建一个口令。
Tomcat 服务器的基本用户和角色在 tomcat-users.xml 中。可以在 <CATALINA_BASE>\conf 目录中找到 tomcat-users.xml。
注:通过在 "Services"(服务)窗口中右键单击 Tomcat 服务器节点并选择 "Properties"(属性)可以查找 CATALINA_BASE 位置。"Server Properties"(服务器属性)将打开。CATALINA_BASE 的位置在 "Connection"(连接)标签中。
注:如果使用早期版本的 IDE 捆绑的 Tomcat 6,该服务器将定义具有口令以及 administrator 和 manager 角色的 ide 用户。用户 ide 的口令是在安装 Tomcat 6 时生成的。可以更改用户 ide 的口令,或者将该口令复制到 tomcat-users.xml 中。
将用户添加到 Tomcat 中:
- 在编辑器中打开 <CATALINA_BASE>/conf/tomcat-users.xml。
- 添加一个名为 AdminRole 的角色。
<role rolename="AdminRole"/>
- 添加一个名为 UserRole 的角色。
<role rolename="UserRole"/>
- 添加一个名为 admin 并具有 adminpw1 口令和 AdminRole 角色的用户。
<user username="admin" password="adminpw1" roles="AdminRole"/>
- 添加一个名为 user 并具有 userpw01 口令和 UserRole 角色的用户。
<user username="user" password="userpw01" roles="UserRole"/>
现在,tomcat-users.xml 文件显示如下:
<tomcat-users>
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
...
<role rolename="AdminRole"/>
<role rolename="UserRole"/>
<user username="user" password="userpw01" roles="UserRole"/>
<user username="admin" password="adminpw1" roles="AdminRole"/>
[User with manager-script role, defined when Tomcat 7 was registered with the IDE]
...
</tomcat-users>
在 WebLogic Server 上定义用户和组
对于本方案,首先需要使用 WebLogic Server 的管理控制台创建两个分别名为 user 和 admin 的新用户。将这些用户分别添加到 userGroup 和 adminGroup 组中。稍后,将要为这些组指定安全角色。userGroup 将对应用程序具有有限的访问权限,而 adminGroup 将具有管理权限。
WebLogic 管理控制台联机帮助中提供了有关向 Web Logic 服务器添加用户和组的一般说明。
将 "user" 和 "admin" 用户和组添加到 WebLogic 中:
-
通过转至 IDE 的 "Services"(服务)窗口并右键单击 "Servers"(服务器)> "WebLogic Server" > "View Admin Console"(查看管理控制台)打开 "Admin Console"(管理控制台)。GlassFish Server 的登录页将在浏览器窗口中打开。您需要使用管理员用户名和口令进行登录才能访问管理控制台。
注:必须运行应用服务器才能访问管理控制台。要启动服务器,请右键单击 WebLogic Server 节点并选择 "Start"(启动)。
- 在左面板中,选择 "Security Realms"(安全领域)。"Summary of Security Realms"(安全领域概要)页将会打开。
- 在 "Summary of Security Realms"(安全领域概要)页中,选择领域的名称(默认领域为 "myrealm")。"Settings for Realm Name"(领域名称设置)页将会打开。
- 在 "Settings for Realm Name"(领域名称设置)页中,选择 "Users and Groups"(用户和组)> "Users"(用户)。将显示 "Users"(用户)表。
- 在 "Users"(用户)表中,单击 "New"(新建)。"Create New User"(创建新用户)页将会打开。
- 键入名称 "user" 和口令 "userpw01"。还可以键入说明。接受默认的 "Authentication Provider"(验证提供器)。

- 单击 "OK"(确定)。您将返回到 "Users"(用户)表。
- 单击 "New"(新建)并添加一个具有名称 "admin" 和口令 "admin1" 的用户。
- 打开 "Groups"(组)标签。将显示 "Groups"(组)表。
- 单击 "New"(新建)。"Create a New Group"(创建新组)窗口将会打开。
- 将组命名为 userGroup。接受默认提供器并单击 "OK"(确定)。您将返回到 "Groups"(组)表。
- 单击 "New"(新建)并创建组 adminGroup。
- 为下一过程打开 "Users"(用户)标签。
现在,将 admin 用户添加至 adminGroup,并将 user 用户添加至 userGroup。
将用户添加到组中:
- 在 "Users"(用户)标签中,单击 admin 用户。用户的 "Settings"(设置)页将会打开。
- 在 "Settings"(设置)页中,打开 "Groups"(组)标签。
- 在 "Parent Groups: Available:"(父组:可用:)表中,选择 adminGroup。
- 单击向右箭头 >。adminGroup 将出现在 "Parent Groups: Chosen:"(父组: 选定:)表中。

- 单击 "Save"(保存)。
- 返回到 "Users"(用户)标签。
- 单击 user 用户并将其添加至 userGroup。
配置登录方法
在为应用程序配置登录方法时,可以使用浏览器提供的登录窗口进行基本登录验证。另外,还可以创建具有登录窗体的 Web 页。这两种登录配置都是基于用户/口令验证的。
要配置登录,需创建安全约束并为这些安全约束指定角色。安全约束定义一组文件。将角色指定给约束时,拥有该角色的用户可以访问约束定义的文件集。例如,在本教程中,您将 AdminRole 指定给 AdminConstraint,将 UserRole 和 AdminRole 指定给 UserConstraint。这意味着,具有 AdminRole 角色的用户有权访问 Admin 文件和 User 文件,但具有 UserRole 角色的用户只有权访问 User 文件。
注:向单独的管理员角色提供对用户文件的访问权限不是常规用例。替代方法是只将 UserRole 指定给 UserConstraint,并且在服务器端将 AdminRole 赋予也是管理员的特定 *用户*。您应决定如何按用例授予访问权限。
通过配置 web.xml,可以为应用程序配置登录方法。可以在 "Projects"(项目)窗口的 "Configuration Files"(配置文件)目录中找到 web.xml 文件。
基本登录
在使用基本登录配置时,登录窗口由浏览器提供。访问安全内容需要有效的用户名和口令。
以下步骤介绍了如何为 GlassFish 和 WebLogic Server 配置基本登录。Tomcat 用户需要使用窗体登录。
配置基本登录:
- 在 "Projects"(项目)窗口中,展开项目的 "Configuration Files"(配置文件)节点,然后双击 web.xml。将在可视编辑器中打开 web.xml 文件。
- 单击工具栏中的 "Security"(安全),在 "Security"(安全)视图中打开该文件。
- 展开 "Login Configuration"(登录配置)节点,然后将 "Login Configuration"(登录配置)设置为 "Basic"(基本)。
注:如果希望使用窗体,请选择 "Form"(窗体)而不是 "basic"(基本),并指定登录页和登录错误页。
- 根据服务器输入领域名称。
- GlassFish:输入 file 作为领域名称。这是在 GlassFish Server 上创建用户所在的默认领域名称。
- Tomcat:请勿输入领域名称。
- WebLogic:输入您的领域名称。默认领域是 myrealm。

- 展开 "Security Roles "(安全角色)节点,然后单击 "Add"(添加)可添加角色名称。
- 添加以下安全角色:
- AdminRole。添加到此角色的用户将有权访问服务器的 secureAdmin 目录。
- UserRole。添加到此角色的用户将有权访问服务器的 secureUser 目录。
注:GlassFish 角色名称必须以大写字母开头。
- 通过执行以下操作,创建和配置名为 AdminConstraint 的安全约束:
- 单击 "Add Security Constraint"(添加安全约束)。将显示新安全约束部分。
- 输入 AdminConstraint 作为新安全约束的显示名称。

- 单击 "ADD"(添加)。将打开 "Add Web Resource"(增加 Web 资源)对话框。
在 "Add Web Resource"(增加 Web 资源)对话框中,将 "Resource Name"(资源名称)设置为 Admin,将 "URL Pattern"(URL 模式)设置为 /secureAdmin/*,然后单击 "OK"(确定)。对话框将关闭。
注:如果使用星号 (*),则会授予用户访问该文件夹中所有文件的权限。

- 选中 "Enable Authentication Constraint"(启用验证约束),然后单击 "Edit"(编辑)。"Edit Role Names"(编辑角色名称)对话框将会打开。
- 在 "Edit Role Names"(编辑角色名称)对话框中,在左窗格中选择 AdminRole,单击 "Add"(添加),然后单击 "OK"(确定)。
在完成上述步骤之后,结果应如下图所示:

- 通过执行以下操作,创建和配置名为 UserConstraint 的安全约束:
- 单击 "Add Security Constraint"(添加安全约束),创建新的安全约束。
- 输入 UserConstraint 作为新安全约束的显示名称。
- 单击 "Add"(添加),添加 "Web Resource Collection"(Web 资源集合)。
- 在 "Add Web Resource"(增加 Web 资源)对话框中,将 "Resource Name"(资源名称)设置为 User,将 URL 模式设置为 /secureUser/*,然后单击 "OK"(确定)。
- 选中 "Enable Authentication Constraint"(启用验证约束),然后单击 "Edit"(编辑)以编辑 "Role Name"(角色名称)字段。
- 在 "Edit Role Names"(编辑角色名称)对话框中,在左窗格中选择 AdminRole 和 UserRole,单击 "Add"(添加),然后单击 "OK"(确定)。
注:还可以在 web.xml 中设置会话的超时时间。要设置超时,请单击可视编辑器的 "General"(常规)标签,然后指定希望会话持续的时间。默认值为 30 分钟。
窗体登录
使用窗体进行登录可以定制登录页和错误页的内容。使用窗体配置验证的步骤与基本登录配置相同,但需要指定您创建的登录页和错误页。
以下步骤演示如何配置登录窗体
- 在 "Projects"(项目)窗口中,双击位于 Web 页/WEB-INF 目录中的 web.xml,在可视编辑器中打开该文件。
- 单击工具栏中的 "Security"(安全),在 "Security"(安全)视图中打开该文件,并展开 "Login Configuration"(登录配置)节点。
- 将 "Login Configuration"(登录配置)设置为 "Form"(窗体)。
- 通过单击 "Browse"(浏览)并找到 login.jsp 设置“窗体登录页”。
-
通过单击 "Browse"(浏览)并找到 loginError.html 设置“窗体错误页”。
- 根据服务器输入领域名称。
- GlassFish:输入 file 作为领域名称。这是在 GlassFish Server 上创建用户所在的默认领域名称。
- Tomcat:请勿输入领域名称。
- WebLogic:输入您的领域名称。默认领域是 myrealm。
- 展开 "Security Roles "(安全角色)节点,然后单击 "Add"(添加)可添加角色名称。
- 添加以下安全角色:
AdminRole |
添加到此角色的用户将有权访问服务器的 secureAdmin 目录。 |
UserRole |
添加到此角色的用户将有权访问服务器的 secureUser 目录。 |
- 通过执行以下操作,创建和配置名为 AdminConstraint 的安全约束:
- 单击 "Add Security Constraint"(添加安全约束),创建新的安全约束。
- 输入 AdminConstraint 作为新安全约束的显示名称。
- 单击 "Add"(添加),添加 "Web Resource Collection"(Web 资源集合)。
-
在 "Add Web Resource"(增加 Web 资源)对话框中,将 "Resource Name"(资源名称)设置为 Admin,将“URL 模式”设置为 /secureAdmin/*,然后单击 "OK"(确定)。
注:如果使用星号 (*),则会授予用户访问该文件夹中所有文件的权限。

- 选中 "Enable Authentication Constraint"(启用验证约束),然后单击 "Edit"(编辑)。"Edit Role Names"(编辑角色名称)对话框将会打开。
- 在 "Edit Role Names"(编辑角色名称)对话框中,在左窗格中选择 AdminRole,单击 "Add"(添加),然后单击 "OK"(确定)。
在完成上述步骤之后,结果应如下图所示:

- 通过执行以下操作,创建和配置名为 UserConstraint 的安全约束:
- 单击 "Add Security Constraint"(添加安全约束),创建新的安全约束。
- 输入 UserConstraint 作为新安全约束的显示名称。
- 单击 "Add"(添加),添加 "Web Resource Collection"(Web 资源集合)。
- 在 "Add Web Resource"(增加 Web 资源)对话框中,将 "Resource Name"(资源名称)设置为 User,将 URL 模式设置为 /secureUser/*,然后单击 "OK"(确定)。
- 选中 "Enable Authentication Constraint"(启用验证约束),然后单击 "Edit"(编辑)以编辑 "Role Name"(角色名称)字段。
- 在 "Edit Role Names"(编辑角色名称)对话框中,在左窗格中选择 AdminRole 和 UserRole,单击 "Add"(添加),然后单击 "OK"(确定)。
注:还可以在 web.xml 中设置会话的超时时间。要设置超时,请单击可视编辑器的 "General"(常规)标签,然后指定希望会话持续的时间。默认值为 30 分钟。
配置服务器部署描述符
如果要将应用程序部署到 GlassFish 或 WebLogic Server,则需配置服务器部署描述符,以映射在 web.xml 中定义的安全角色。服务器部署描述符列在 "Projects"(项目)窗口中项目的 "Configuration Files"(配置文件)节点下。
配置 GlassFish Server 部署描述符
GlassFish Server 部署描述符名为 glassfish-web.xml。服务器部署描述符在 "Configuration Files"(配置文件)文件夹中。如果它不在此处,可通过右键单击项目的节点并转至 "New"(新建)> "Other"(其他)> "GlassFish" > "GlassFish Deployment Descriptor"(GlassFish 部署描述符)来创建。接受所有默认设置。
请注意,在 web.xml 中输入的值将显示在 glassfish-web.xml 中。IDE 会从 web.xml 中提取这些值。
配置 GlassFish 部署描述符:
- 在 "Projects"(项目)窗口中,展开项目的 "Configuration Files"(配置文件)节点,然后双击 glassfish-web.xml。glassfish-web.xml 部署描述符将在 GlassFish 部署描述符的特殊标签化编辑器中打开。
注:对于早于 3.1 的 GlassFish Server 版本,此文件名为 sun-web.xml。
- 选择 "Security"(安全)标签以显示安全角色。
- 选择 AdminRole 安全角色节点以打开 "Security Role Mapping"(安全角色映射)窗格。
单击 "Add Principal"(添加主用户),并为主用户名称输入 admin。单击 "OK"(确定)。

- 选择 UserRole 安全角色节点以打开 "Security Role Mapping"(安全角色映射)窗格。
- 单击 "Add Principal"(添加主用户),并为主用户名称输入 user。单击 "OK"(确定)。
- 将更改保存到 glassfish-web.xml。
此外,也可以通过单击 "XML" 标签,在 XML 编辑器中查看和编辑 glassfish-web.xml。如果在 XML 编辑器中打开 glassfish-web.xml,则可以看到 glassfish-web.xml 具有以下安全角色映射信息:
<security-role-mapping>
<role-name>AdminRole</role-name>
<principal-name>admin</principal-name>
</security-role-mapping>
<security-role-mapping>
<role-name>UserRole</role-name>
<principal-name>user</principal-name>
</security-role-mapping>
配置 WebLogic Server 部署描述符
WebLogic 部署描述符名为 weblogic.xml。目前,IDE 对 GlassFish 部署描述符的支持未扩展至 WebLogic 部署描述符。因此,您需要手动对 weblogic.xml 进行所有更改。
WebLogic Server 部署描述符在 "Configuration Files"(配置文件)文件夹中。如果它不在此处,可通过右键单击项目的节点并转至 "New"(新建)> "Other"(其他)> "WebLogic" > "WebLogic Deployment Descriptor"(WebLogic 部署描述符)来创建。接受所有默认设置。
注:有关确保 WebLogic 中 web 应用程序安全(包括声明和编程安全)的详细信息,请参见针对 Oracle WebLogic Server 的 Oracle Fusion Middleware 编程安全。
配置 WebLogic 部署描述符:
- 在 "Projects"(项目)窗口中,展开项目的 "Configuration Files"(配置文件)节点,然后双击 weblogic.xml。weblogic.xml 部署描述符在编辑器中打开。
- 在 <weblogic-web-app> 元素内,键入或粘贴以下安全角色指定元素:
<security-role-assignment>
<role-name>AdminRole</role-name>
<principal-name>adminGroup</principal-name>
</security-role-assignment>
<security-role-assignment>
<role-name>UserRole</role-name>
<principal-name>userGroup</principal-name>
</security-role-assignment>
- 将更改保存到 weblogic.xml。
部署并运行应用程序
在 "Projects"(项目)窗口中,右键单击该项目节点并选择 "Run"(运行)。
注:默认情况下,将在启用“在保存时编译”功能的情况下创建项目,因此无需先编译代码即可在 IDE 中运行应用程序。有关“在保存时编译”功能的详细信息,请参见 Developing Applications with NetBeans IDE User's Guide 中的 Building Java Projects。
在构建应用程序并将其部署到服务器之后,将在 Web 浏览器中打开起始页。通过单击 admin 或 user 选择您要访问的安全区域。
在提供用户和口令之后,共有三个可能的结果:
小结
在本教程中,您创建了一个安全 Web 应用程序。您已经通过使用 web.xml 和 glassfish-web.xml 描述符编辑器,以及创建具有安全登录和多个身份标识的 Web 页,编辑了安全设置。
另请参见