快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

新蒲京澳门app下载_酒文化网进入



本系列文章描述了有关 IBM® WebSphere sMash® 的真实例子,在该例子中 IBM WebSphere sMash 当选择用于履行立异和有代价的义务,来帮助位于美国 CT Southbury 的 IBM's Green Innovation Data Center(GIDC)的运行。第 1 部分 关注若何使用 WebSphere sMash 为构造数据中间唆使板构建机动的架构。在本文中,您将看到 WebSphere sMash 若何使用易用 APIs 包装外部系统治理对象来简化那些高资源的、会增添 GIDC 运行开销的手工义务的自动化。

简介

运行数据中间时,不能只盯着满架的办事器。为达到当今企业在安然标准、数据保护、以及资产治理方面的需求,所必须履行的流程和历程的数量在赓续增长。找到新措施来自动化这些义务,并将它们构建到机动的事情流中,是立异工程组所关注的一个紧张问题。

本文重点先容,使用 WebSphere sMash 的特点,轻松包装外部 API,来实现以前必须由操作职员使用用户接口来履行的一系列步骤,自动化地由云治理根基布局的节制组件驱动的相关例子。

您还有时机懂得,利用 WebSphere sMash 天生 Web 利用开拓与设置设置设备摆设摆设组件特点的技术。

一个企业利用处景

在我们的情况中,所有联网谋略机 — 真实的和虚拟的 — 都必要在数据库中注册,该数据库作为 Address 数据库。传统上,用户经由过程具有范例用户接口的 We新蒲京澳门app下载b 利用,来添加、删除、以及更新系统的每个条款。然而,引入云情况后,我们想要在用户发出哀求时,使用与其应用习气响应的注册实例,来简化新蒲京澳门app下载处置惩罚流程。

幸运的是,我们的 Address 数据库利用中已经包孕了一个用于履行这些操作的 Java™ API。企业云中的每个云治理系统可以包括一个使用该 API 来治理 Address 数据库中条款的 Java 法度榜样。

然而,试想一下,多个云系统想要使用这一办事的上风。为避免不得不在多个地方分发与更新 Java API 库,我们可以创建包孕该 Java API 的办事,从而其他系统就可以使用 RESTful 端点,经由过程 HTTP 造访该办事。我们能够拥有贯穿全部企业的公共办事。开拓该办事背后的步骤,便是本文所关注的焦点。

图1 说明了该体系布局的概述。平日,系统 — 而不是用户 — 将连接我们所供给的办事,虽然操作职员仍旧可以应用用户接口来直接造访 Address 数据库。

图 1. Address 数据库包装器架构

您将看到 WebSphere sMash 若何经由过程打消繁杂的设置设置设备摆设摆设和向导您关注利用的逻辑,来简化这一流程。

本文假设您认识 WebSphere sMash 情况的基础设置以及 “hello world” 利用法度榜样的创建,并假设您已涉猎了本系列的 第 1 部分 ,该部分先容了将在这里具体论述的观点。在本例中,这一简单利用将被编码到 Groovy 中,然则 WebSphere sMash 为您供给 PHP 替代选项,您可自己选择。

创建根基

在该 Address 数据库上您所要支持的操作包括:创建、删除、列表、检索、以及更新记录。

第 1 部分 阐明 WebSphere sMash 若何在 Groovy 文件中轻松实现这些基础操作与措施、HTTP 路径以及操作之间的映射。然而,该文章只关注从办事获取数据(检索以及列表)。在此,办事调用者越想履行更多类型的操作,工作就会变得越有趣。因为用于 Address 数据库的 Java API 供给了所需的操作,您的义务便是将 API 中的 Java 措施与 URI 端点联系起来。

我们用清单 1 中所列出的措施在 /resources 目录中创建名为 system.groovy 的 Groovy 处置惩罚法度榜样。要记着,目录 /resources 是包孕用于治理网络的 REST 处置惩罚法度榜样的优选位置。在本例中,网络是您正在 Address 数据库中注册与治理的一系列系统。

清单 1. system.groovy 的根存措施

def onList() {

print("This function will list systems in the database.")

}

def onCreate() {

print ("This function will create a new system in the database")

}

def onRetrieve() {

print ("This function will retrieve a particular system from the database")

}

def onUpdate() {

print ("this function will update an existing system in the database")

}

def onDelete() {

print ("this function will delete an existing system from the database")

}

正如表 1 中所列出的,每个措施将由不合的 HTTP 操作触发,该表展示了 HTTP 操作与 URIs 以及措施之间的映射。概括地说,这是我们的 RESTful API。

表 1. HTTP 操作与 URIs、以及措施之间的映射

HTTP 措施URI描述映射到措施

GET

/system

返回系统列表。

onList

POST

/system

创建新系统。

onCreate

GET

/system/3

检索系统 3 的细节。

onRetrieve

PUT

/system/4

更新现有的系统 4。

onUpdate

DELETE

/system/7

删除现有的系统 7。

onDelete

例如,对 /resources/system 履行 HTTP GET,会将 onList 函数映射到 system.groovy 中。以所供给的数据作为负载,对 /resource/system 履行 HTTP POST,将会触发函数来创建新的系统记录。工作便是这么简单,不必要做任何设置设置设备摆设摆设。

然而,假如您不想采纳默认映射,您可以经由过程在 zero.config 设置设置设备摆设摆设文件中编写定制处置惩罚法度榜样设置设置设备摆设摆设,并将其映射到 Groovy、PHP、或者 Java 代码来完成映射。

您是否等候在您的系统长进行多种 HTTP 操作测试?Firefox 插件 Poster 可赞助您快速地在您所指定的 URL 长进行 GET、POST、PUT、以及 DELETE 操作测试。

此时,您可对所有操作进行测试。在首次启动利用之前,有需要在利用法度榜样的根目录中,以敕令行的要领运行 zero resolve 来进行启动。假定利用法度榜样在本地运行,并采纳默认端口 8080,可经由过程浏览器造访利用的默认 URL:http://localhost:8080/resources/system。

经由过程表 1 ,可见这个 URL 映射到一列操作,onList。onList 措施只是带有一些浏览器输出的存根。此时,将会在浏览器窗口中看到以下翰墨:This function will list systems in the database。

假如正在数据库中创建新的条款,可考试测验在处置惩罚法度榜样上履行 POST,来查看来自存根的相应。此时,不必斟酌在 HTTP 哀求中加入任何载荷,由于还没有包孕相关的解析代码。

连接到后端

此时已经拥有了 system.groovy 中每个操作的存根,并且已懂得若何基于所选择的 URL 和 HTTP 措施来引用不合的措施。下面的义务是若何挂接到来自 Groovy 处置惩罚法度榜样的 Address 数据库遗留 Java API。我们来看一下若何将两者联系起来。

首先,将 Address 数据库 Java 库 JAR 文件放入 WebSphere sMash 利用的 /lib 目录中,这样就可以使用代码来造访这些类。/lib 目录中的 Java JARs 会在利用启新蒲京澳门app下载动时自动加载,这样就不再必要手动调剂类路径。

针对本例的目的,假设 JAR 文件名为 addressdb.jar,并且它还包孕一个 Java 接口 com.ibm.addressdb.Manager.class 来连接到 Address 数据库并履行操作。清单 2 列出了治理接口的细节,并且实现(未展示出来)包孕在 ManagerImpl.class 中。JAR 还定义了类 com.ibm.addressdb.SystemDetails.class,其代表了 Address 数据库利用中的一个系统。

清单 2. 治理接口

package com.ibm.addressdb;

import java.util.List;

public interface Manager {

public abstract void logon(String username, String password) throws Exception;

public abstract List listSystems();

public abstract SystemDetails getSystem(int systemId) throws Exception;

public abstract SystemDetails addSystem(SystemDetails newSystem) throws Exception;

public abstract SystemDetails updateSystem(int sysId,

SystemDetails system) throws Exception;

public abstract int deleteSystem(int sysId) throws Exception;

}

为应用来自 Groovy 的 Java 工件,包孕响应 Java 导入语句。可以无缝地在您的 Groovy 措施中(清单 3)应用它们。

清单 3. 在 system.groovy 上构建

import com.ibm.addressdb.Manager;

import com.ibm.addressdb.ManagerImpl;

import com.ibm.addressdb.SystemDetails;

def onList() {

Manager m = ManagerImpl.getInstance ()

m.logon ('addressdbid@myorg.org','systempassword')

List list = m.listSystems ()

request.view='JSON'

request.json.output=list

render()

}

onList 措施用于经由过程 Java API 连接 Address 数据库,并在表单 JSON 中返回系统列表。请留意,WebSphere sMash 哀求处置惩罚法度榜样框架会使用所示的语法,自动将包孕零或更多 SystemDetails 的 List 工具转换为 JSON 数组。要确保 List 类型的 getters 和 setters 遵照 JavaBean 常规来支持这一转变。清单 4 展示了响应的示例。随后,将先容若何对密码进行编码,来避免其以明文形式在代码中呈现。

清单 4. 对列表哀求的相应

[

{

"creatorId":"cloud1@myorg,com",

"ipAddress":"9.45.15.40",

"ownerId":"user1@myorg.com",

"systemId":"0",

"systemName":"financeServer"

}

{

"creatorId":"cloud1@myorg,com",

"ipAddress":"9.45.15.41",

"ownerId":"user2@myorg.com",

"systemId":"1",

"systemName":"hrServer"

}

]

接下来,我们来看您若作甚在数据库中创建新的系统记录而进行 onCreate 措施编码。在此,必方法会包孕系统细节的 POST 内容,然后将这些添补进 Java API。该操作经由过程提取 HTTP POST 的内容,并将其转换成 JSON 工具来实现。那么,就可方便引用传入的特定属性。清单 5 以在 POST 哀求中显示的款式展示一些系统参数。

清单 5. 创建系统记录的 POST 参数样例

{

"systemName":"auditServer",

"ownerId":"user4@myorg.com",

"ipAddress":“9.45.15.43"

}

清单 6 展示了若何轻松地提取哀求中的参数并将其供给到 Java API 中。留意,从 JSON 工具中提取 IP 地址、系统名、以及系统所有者名,并将其传入您的办事中。

然而为了审计,还必要识别与办事哀求相关的 ID。调用办事的系统将其作为办事 ID。为此,必要经由过程从检索全局高低文,来获取认证用户的用户名。拜见 Global Context Reference 来懂得其默认的存储值。借助这一参考,能够发明登任命户的用户名存储在 /request/subject/remoteUser 中。可经由过程将哀求路径作为参数来履行 zget 措施,在全局高低文中检索成员:

zget (“/request/subject/remoteUser”)

或者经由过程调用另一个语法:

request.subject.remoteUser []

这将会返回认证的用户名。接下来,应用第二个语法,的它很简洁。

由于在当前的利用中并未采纳身份认证,此时履行 remoteUser 检索将会返回空值。鄙人一部分中,您可懂得到若何使用 LDAP 来建立认证与授权规则。

在 onCreate 措施的着末,会依照 REST 常规,返回一个相宜的 HTTP 代码。假如创建成功,会返回 HTTP 状态代码 201,来注解操作成功并且已经创建了一些内容。还会在 HTTP 资泉源中返回新资本的位置。例如,新系统可能位于 URI:http://localhost:8080/resources/system/3。

可使用这一位置来检索新创建系统的 ID,确定其 ID 并查看其数据。必要追踪本地系统 ID,这样就可在其上履行后续操作(检索、更新、删除),但在本文中我们将要略去对本地数据库的治理。所创建的元素可被有选择地返回,但这不是必需的,我们选择不包孕这些。

清单 7 展示检索系统的代码,清单 8 展示了删除系统,清单 9 展示了创建系统。

一些所有技巧的注释:

将 POST 或者 PUT 主体中的 JSON 字符串转换为 JSON 工具,采纳如下语法:

def systemInputs = zero.json.Json.decode(request.input[]);

接下来您可轻松造访 JSON 工具成员。可在 onUpdate 与 onCreate 中查看相关示例。

如前面所提到的,可使用 WebSphere sMash 的哀求/相应框架,将简单 Java 工具和聚拢(Lists,、Maps 等等)转换成响应的 JOSN。该技巧在 onRetrieve 和 onList 措施的着末有相关阐明。没有需要手动将 Java 工具转换成 JSON 工具。

将系统 ID 作为 URL 参数提取的措施(onCreate、onRetrieve、onDelete 以及 onUpdate),采纳如下语法:

request.params.systemId[]

为引用 URL 参数,然后将参数转换为整数。要遵循以下常规来构成 “systemId” 部分:将呈现在URL(在本例中为 “system” )中的聚拢资本名与 “Id” 连接来天生 “systemId”。

留意,不论在成功或掉败的案例中,在每个措施的着末总返回 HTTP 返回代码。这些供给了 API 中成功操作的一个清楚而简洁的表示。

清单 6. system.groovy 的 onCreate 措施

def onCreate() {

//Convert request entity to JSON object

//then we can easily pull out the objects from it

def systemInputs = zero.json.Json.decode(request.input[])

SystemDetails newSystem = new SystemDetails ()

newSystem.setIpAddress (systemInputs.ipAddress)

newSystem.setSystemName (systemInputs.systemName)

newSystem.setOwnerId (systemInputs.ownerId)

String remoteUser = request.subject.remoteUser[]

if (remoteUser == null) {

remoteUser = 'none'

//handle error...

}

newSystem.setCreatorId (remoteUser)

Manager m =  ManagerImpl.getInstance ()

m.logon ('addressdbid@myorg.org','systempassword')

SystemDetails confirmedSystem = m.addSystem (newSystem)

if (confirmedSystem !=null ) {

// Set a Location header with URI to the new record

locationUri = getRequestedUri(false) + '/' + newSystem.getSystemId()

request.status = HttpURLConnection.HTTP_CREATED

} else {

//handle error

request.status = HttpURLConnection.HTTP_INTERNAL_ERROR

request.error.message = "system $requestSystemId not found."

request.view = 'error'

render()

}

}

清单 7. system.groovy 的 onRetrieve 措施

def onRetrieve() {

// Getting the system id of the system from the REST URL

// Follows the convention of "collection item name" + "Id"

def requestSystemId = Integer.parseInt(request.params.systemId[])

Manager m = ManagerImpl.getInstance ()

m.logon ('addressdbid@myorg.org','systempassword')

SystemDetails system = m.getSystem (requestSystemId)

String response = null

if (system !=null ) {

response = zero.json.Json.encode(system)

request.json.output=response

request.view='JSON'

render()

} else {

// Error handling

request.status = HttpURLConnection.HTTP_NOT_FOUND

request.error.message = "system $requestSystemId not found."

request.view = 'error'

render()

}

}

清单 8. system.groovy 的 onDelete 措施

def onDelete() {

def requestSystemId = Integer.parseInt(request.params.systemId[])

Manager m = ManagerImpl.getInstance ()

m.logon ('addressdbid@myorg.org','systempassword')

int deletedSystem = m.deleteSystem (requestSystemId)

if (deletedSystem >= 0 ) {

request.status = HttpURLConnection.HTTP_NO_CONTENT

} else {

// Error handling

request.status = HttpURLConnection.HTTP_NOT_FOUND

request.error.message = "system $requestSystemId not found."

request.view = 'error'

render()

}

}

清单 9. system.groovy 的 onUpdate 措施

def onUpdate() {

def requestSystemId = Integer.parseInt(request.params.systemId[])

Manager m = ManagerImpl.getInstance ()

m.logon ('addressdbid@myorg.org','systempassword')

SystemDetails existingSystem = m.getSystem (requestSystemId)

SystemDetails confirmedSystem = null

if (existingSystem!=null){

// Convert POSTED data to JSON object

//then we can easily pull out the objects from it

def systemInputs = zero.json.Json.decode(request.input[])

existingSystem.setIpAddress (systemInputs.ipAddress)

existingSystem.setSystemName (systemInputs.systemName)

existingSystem.setOwnerId (systemInputs.ownerId)

String remoteUser = request.subject.remoteUser[]

if (remoteUser == null) {

remoteUser = 'none'

//handle error...

}

existingSystem.setCreatorId (remoteUser)

confirmedSystem = m.updateSystem (requestSystemId, existingSystem)

}

if (confir新蒲京澳门app下载medSystem !=null ) {

request.status = HttpURLConnection.HTTP_NO_CONTENT

} else {

// Error handling

request.status = HttpURLConnection.HTTP_NOT_FOUND

request.error.message = "system $requestSystemId not found or could not be

updated."

request.view = 'error'

render()

}

}

加强办事的安然

现在已完全拥有了办事的根基,但还有需要实现对其安然造访。不仅您和造访该办事的注册用户必要知道它,而且还要确保只有授权的系统或用户可以造访它。幸运的是,WebSphere sMash 设计目的是使资本安然保护直接了当。最妙的是,仅需几行设置设置设备摆设摆设就可实现利用安然。

清单 10 阐述了可包括在 zero.config 中的设置设置设备摆设摆设。

清单 10. 安然设置设置设备摆设摆设

# Enable Security

@include "security/enableSecurity.config"

# Secret Key - run "zero secretkey" CLI command to generate secret key

# Required whenever security is enabled in sMash

/config/security/secretKey = "xMgwl+sUzcsRBLb4tBkn5w=="

# Using the LDAP for authentication

/config/security/userservice/registryType="ldap"

### Inbound authorization to this wrapper

# LDAP related configuration

/config/security/userservice/ldap += {

"jndiProviderUrl" : "ldaps:// /",

"jndiSecurityAuthentication" : "simple",

"ldapSearchScope" : 2,

"ldapUserIdSearchFilterPattern" : "(&(mail={0})(objectclass=person))",

"ldapUserIdBaseDn" : "ou=bluepages,o=.com",

"ldapGroupBaseDn" : "ou=memberlist, ou=,o=.com",

"ldapUserIdAttributeType": "mail"

}

慢慢浏览这一设置设置设备摆设摆设:

参考包孕在 WebSphere sMash 框架中的设置设置设备摆设摆设 security/enableSecurity.config 来确保安然。参考包孕在 WebSphere sMash 框架中的设置设置设备摆设摆设 security/enableSecurity.config 来启用安然功能。

为了能在利用法度榜样高低文中应用安然功能,必要天生一个密钥。该密钥用于在 WebSphere sMash 情况中加密机密用户数据。天生操作要在 Zero 敕令行中应用敕令 zero secretkey 实现。一旦天生了密钥,就必要将其包孕到文件 zero.config 中。清单 10 展示了密钥的示例。

选择若何进行用户认证。可以在利用中包孕一系列用户名和密码,还可以挂接到 LDAP 目录。在本例中,将连接到 LDAP,其操作如下所示:

/config/security/userservice/registryType="ldap"

为了进行测试,可能必要采纳基于文件的用户注册要领。这一点在 WebSphere sMash 文档中有详细描述。

包括了 LDAP 数据库,此中是企业 LDAP 办事器所特有的代码。必要依据所采纳的 LDAP 办事来定制该代码。

设置设置设备摆设摆设的着末一部分,包孕在清单 11 中,这部分指出了所需保护的资本以及所要采纳的认证要领。本例中选用基础认证要领。设置设置设备摆设摆设文件指出了以 “/resources/” 开首的资本必要授权。换句话说,保护的是 resource 目录下的资产而不是全部利用法度榜样。假设有一些文档位于利用法度榜样的公共目录下,任何人都可对其进行造访。假如采纳这一安然设置设置设备摆设摆设将无法保护 WebSphere sMash 目录布局中 /resource/ 路径之外的公共目录。

留意,授权前提可能必要更细的粒度。在本例中,利用必要在 system.groovy 上履行除了 GET 之外所有操作,包括 POST、PUT、DELETE,进行授权。或者,也可以简单地只包孕 HTTP 和 GET 操作。后面将对此做演示。

着末,指定容许造访的 LDAP 组 Address-Database-Wrapper-Users。非该组的用户将无法造访办事。

清单 11. 加密资本

#uses group discovered through LDAP authentication.

@include "security/basicAuthentication.config"{

"conditions": "(/request/path =~ /resources (/.*)?) &&

(/request/method =~ (POST| PUT|DELETE)) "

"groups" :["Address-Database-Wrapper-Users"]

}

重启利用,并考试测验对 http://localhost:8080/resources/system 履行 GET 或 POST 操作,将呈现认证提示。

基础认证轻易实施,是以在原型及情景利用中大年夜量应用。还可方便用于本文所描述的系统到系统的场景中。它也有一些毛病,例如,用户名密码弹出对话框是否美不雅,要看浏览器的实施环境。别的,浏览器会缓存用户名和密码基础认证,是以无法进行刷新。其结果是退出很难实现。用户必要关闭浏览器来退出利用法度榜样。

为实现更靠得住以及定制化功能更强的认证处置惩罚,并得到更流通的用户体验,您可能会选择基于表单的认证要领。此处不评论争论基于表单认证要领的细节,然则 WebSphere sMash 框架支持这种要领。

使用 HTTPS 实现安然连接

因为必要哀求用户名和密码,是以,在实际情况中必须采纳 HTTPS 来实现安然连接。由于开拓事情的必要,可以采纳自署名认证,WebSphere sMash 在 zero.core.webtools 中包孕一个自署名认证测试组件。

为启用 HTTPS,必要对文件 zero.config 进行一些设置设置设备摆设摆设,见清单 12。留意,密码 keystore 带有前缀 “.”。这一语法阐明密码已加密,不会以明文要领呈现在设置设置设备摆设摆设文件中。

现在要编码以明文形式包孕在 groovy.system 中,用于后端 API 的密码。可使用 XOREncode 对象完成此操作。在使用 XOR 对利用法度榜样进行编码时,可查询 WebSphere sMash 相关文档。

清单 12. 启用基础 HTTPS - 入站

/config/https/port = 8443

/config/https/sslconfig = {

"keyStore": "./config/key.jks",

"keyStorePassword": "JTotMC8+LCw="

’,

"keyStoreType": "JKS"

}

设置设置设备摆设摆设文件

关于设置设置设备摆设摆设的其他一些设置。

采纳 WebSphere sMash,必要为利用法度榜样设置高低文根。这有助于确保利用法度榜样的可移植性,并可避免在假定利用资本位于根 “/” 中的条件下进行编码。还可在利用中为 URLs 增添可描述属性。下面是必要在 WebSphere sMash 中设置根高低文的设置设置设备摆设摆设示例:

/config/contextRoot="/addressdb"

经由过程精确设置,利用法度榜样的基础 URL 改变了,之前是 http://localhost:8080/resources/system,现在变为 http://localhost:8080/addressdb/resources/system。

到今朝为止,已经先容了很多必要在设置设置设备摆设摆设文件中进行的设置。默认环境下,WebSphere sMash 会查找名为 zero.config 的设置设置设备摆设摆设文件。然则,跟着设置设置设备摆设摆设的增添,zero.config 会变得难以节制。WebSphere sMash 中的一些特点能够赞助避免这一问题。

设置设置设备摆设摆设文件包括

设置设置设备摆设摆设文件中可以包孕其他设置设置设备摆设摆设文件。清单 12 展示了将安然设置设置设备摆设摆设移动到其所拥有文件中的示例。您可能会发明,在为利用启用安然功能时,曾经见过这一示例。此中包孕用于启用安然功能的基础 WebSphere sMash 设置设置设备摆设摆设文件。可对我们的文件采纳相同的措施。

在清单 13 中,用于连接数据库 Address 的用户名和密码都加入到设置设置设备摆设摆设中,这样就可以从代码中删除最初写入的翰墨值(清单 3、6、8 和 9)。如前面所述,已使用 XOR API 对真实密码 “systempassword” 进行编码,实现了隐隐处置惩罚;查看设置设置设备摆设摆设文件的其他用户无法读取该密码。假如想在代码中引用这些设置设置设备摆设摆设值,可采纳与获取远程用户操作相同的语法。在本例中,采纳 config.addressDB.username[] 来检索用户名。

清单 13. 包孕设置设置设备摆设摆设文件

zero.config 的内容:

@include "addressDBSecurity.config"

Contents of config/addressDBSecurity.config:

….

#default logon ID and password to access backend Address Database

/config/addressDB/username="addressdbid@myorg.org"

/config/addressDB/password=df3533wsKG8tOw==

# Enable Security

@include "security/enableSecurity.config"

# Secret Key - run "zero secretkey" CLI command to generate secret key

/config/security/secretKey = "xMgwl+sUzcsRBLb4tBkn5w==""

...

重写设置设置设备摆设摆设

平日,您很盼望能有一个设置设置设备摆设摆设文件来赞助组织设置设置设备摆设摆设。这样还可以很方便地重写文件中所包孕的属性。WebSphere sMash 能够轻松实现这一需求。举一个例子:假设在测试利用时,想使用非默认的测试用户名和密码来连接后端 Address 数据库。清单 14 若何设置 zero.config 文件来达到这一目的。在本清单中,重写了 addressDBSecurity.config 中所供给的默认用户名和密码。

清单 14. 重写匹配规则

Contents of zero.config

@include "addressDBSecurity.config"

#override the username and password used to connect to the backend Address Database.

/config/addressDB/username ="test-addressdbid@myorg.org"

/config/addressDB/password="MiYvPiwsKG8tOw=="

这仿照在清单 11 资本上中首次设置认证时的技巧。在清单 14 中,创建清单 13 上的设置设置设备摆设摆设。将全部安然设置设置设备摆设摆设转移到 addressDBSecurity.config 中。当调用包孕时,就指出了盼望替代 addressDBSecurity.config 中的基础设置设置设备摆设摆设,就不必要对 “GET” 哀求做认证。

调试技巧

假如既启用安然功能又要连接到供应商办事,那么启用附加追踪很有需要。requestLogging 办事在针对办事的追踪哀求中很有用。每个哀求记录到零丁的文件中,并包孕有代价的信息。而且,还会发明必要针对特定组件的附加追踪。新蒲京澳门app下载清单 15 展示了日志设置设置设备摆设摆设的示例。

清单 15. 日志设置设置设备摆设摆设示例

#Enable the logging

/config/requestLogging = true

# Enable fine detail on certain components.

/config/logging/levels = {

"zero.core.config" : "FINE",

"zero.core.security" : "FINEST"

}

在利用正式上线时,确保已禁用或削减了日志,由于日志总会增添机能负载,而且具体的追踪日志会快速增长,并会耗丧掉落可用的硬盘空间。

停止语

本系列的第 2 部分,先容了若何使用 WebSphere sMash 来环抱旧版 Java 对象构建 RESTful API 到外部系统治理利用的包装,并反省了将 WebSphere sMash 编程模式常规用于支持快速利用开拓的更多措施。

本系列中的第 3 部分将先容 WebSphere sMash 使用可视化对象来创建事情流的能力,并先容若何将其包孕在利用傍边。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: