Articles of java

在哪里安全地存储Node js Web服务的SSL证书

无法find这个在线的明确答案。 我在Linux Redhat企业机器上运行了一个节点js api服务。 我将ssl密钥存储在普通目录文件夹/ home / ssl / keys中(感觉不安全)。 我的同事build议我使用Java Keystore来存储密钥。 Java密钥存储和我在网上find的节点j之间没有任何关系。 有没有替代节点js安全地存储类似于java密钥库的ssl证书?什么是在生产环境中保护ssl证书的最佳做法? 简单地将密钥保存在服务器上的随机文件夹中有什么缺点? 谢谢。

如何使用JOIN查询使用sequelize将模型数组添加到节点js中的另一个模型

所以我正在将应用程序从JAVA移动到Nodejs。 其中一个数据库模式分为源和事实。 每个来源可以有多个事实,每个事实都被分配给一个来源。 现在在JAVA中运行以下查询: SELECT SRC.SRC_ID, SRC.SRC_NM, FACTS.FACT_ID, FACT_NM, FACT_VAL FROM TDAV_ALM_SRC_REG_M SRC LEFT OUTER JOIN TDAV_SRC_FACTS_M FACTS ON SRC.SRC_ID = FACTS.SRC_ID WHERE SRC.SRC_ID = ? 我使用下面的映射规则,在xml中定义: <resultMap id="sourceResult" type="com.sec.davs.olap.dto.OLAPSourceConfigDto"> <result property="src_id" column="src_id"/> <result property="src_nm" column="src_nm"/> <collection property="factsList" ofType="com.sec.davs.olap.dto.OLAPFactsDto"> <result property="fact_id" column="fact_id"/> <result property="fact_nm" column="fact_nm"/> <result property="fact_val" column="fact_val"/> </collection> </resultMap> 这里OLAPSourceConfigDto和OLAPFactsDto是POJO,而OLAPSourceConfigDto有一个在其中定义的OLAPFactsDto数组。 现在我得到的结果如下: { "result": { […]

在浏览器中运行seleniumbuild设者的摩卡testing

我如何在浏览器中运行testing? 我使用seleniumbuild设者来记住步骤,然后我导出file.js并运行它在摩卡(npmtesting)。 testing成功,但我不能打电话给浏览器。 如果我导出file.java并在eclipse中运行它,一切正常,但在摩卡我不能调用任何浏览器。 我已经把驱动(如geckodriver的FF)在给定的文件夹中,通过npm安装selenium服务器等,有不同的设置file.js为浏览器,命令等,但浏览器将不会出现,当我在摩卡运行testing。 (我正在使用Windows)。 我可以运行由selenium builder(.json)编写的testing。 以前在命令行启动selenium服务器; 我可以通过SeInterpreter(没有seleniumbuild设者)运行testing(.json)。 但是,我怎样才能打电话给浏览器,看我以前写过的步骤? 这是代码示例: var assert = require('assert'); var wd = require('wd'); chai = require('chai'), expect = chai.expect, _ = require('underscore'), fs = require('fs'), path = require('path'), uuid = require('uuid-js'); var VARS = {}; // This assumes that selenium is running at http://127.0.0.1:4444/wd/hub/ var noop = function() […]

Nodejsencryption的string不符合java:AES-256-CBC

嗨,我写了nodejsencryption和javaencryption通过使用相同的algorithm在一边。 但Java和NodeJS正在返回不同的encryptionstring。 请帮我这里。 //这是我的Java代码 import java.io.UnsupportedEncodingException; import java.security.Key; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; public enum AESUtil { ; private static final String ENCRYPTION_KEY = "RwcmlVpg"; private static final String ENCRYPTION_IV = "4e5Wa71fYoT7MFEX"; public static String encrypt(String src) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, makeKey(), […]

GRPC从客户端到服务器的转发代理

从nodejs或java中使用grpc,使grpc客户端通过代理连接到服务器所需的属性或configuration是什么? 我一直无法find解释设置的示例或文档。 我需要在代码本身做些什么吗? 我在一个代理后面,我不确定是否问题是我的设置不正确,或者我的代理不支持grpc。 它支持http / 2作为协议升级。 我在java中的代理设置是: -Dhttp.proxyHost=xxx.xxx.xxx -Dhttp.proxyPort=8888 -Dhttp.nonProxyHosts="*.nowhere.nothing" -Dhttps.proxyHost=xxx.xxx.com -Dhttps.proxyPort=8888 -Dhttps.nonProxyHosts="*.nowhere.nothing" -Dsocks.proxyHost=xxx.xxx.xxx -Dsocks.proxyPort=8888 -Dsocks.nonProxyHosts="*.nowhere.nothing"

节点js从PKCS12密钥库中读取密钥

我正在使用pem模块从PKCS12密钥库中读取使用我的Java类创build的密钥。 Java类工作正常,我检查,以确保有keytool条目,但是当我读取节点的密钥库文件,什么都没有显示。 节点代码: const pfx = fs.readFileSync("myKeyStore.pfx"); pem.readPkcs12(pfx, { p12Password: "password" }, (err, cert) => { console.log(cert); }); 节点输出: { cert: undefined, ca: [], key: undefined } Keytool输出: $ keytool -list -keystore myKeyStore.pfx -storepass password -storetype PKCS12 -v Keystore type: PKCS12 Keystore provider: SunJSSE Your keystore contains 3 entries Alias name: test Creation date: 21-Sep-2017 […]

将一个非常大的string数组传递给SQL存储过程

我有这个存储过程,每个13个字符长的产品的string数组,例如:2345697894131,现在从我的后端代码,我可以通过将其转换为一个CSVstring作为CSV传递它。 因此,在存储过程中,我可以捕获它: @in_product_id VARCHAR(MAX) or maybe VARCHAR(8000) 然后我使用分裂函数与IN来检查各种条件,例如: IF EXISTS (SELECT top 1 * FROM Table WHERE (productid IN (SELECT (value) from dbo.split(@in_product_id,',')))) select查询的语法可能不正确。 但这是采取一系列ID的理想方式。 我担心的是当产品数组太大而超过MAX时,我将不得不跟踪这些被错过的ID。 我需要知道在存储过程中处理这种input的理想方式,还是应该限制要采取的产品数量?

阻塞调用如何像Jetty Non Blocking IO servlet在内部处理数据库访问?

我已经阅读了大量的材料来尝试和清楚地了解Jetty Non Blocking Web应用程序服务器可以或不可以提供的收益。 到目前为止,我所了解的(部分是通过引用这个: Jetty和其他容器如何在坚持Servlet规范的同时利用NIO )是因为使用非阻塞IO模型,像Jetty这样的Web服务器运行一个(或每个CPU核心)线程 – select器线程 – 确定为一些I / O准备好的连接。 准备好一些I / O的连接将被分派到内部线程池进行处理,以处理请求。 我可以看到,这样的架构可以让您以更less的资源为更多的连接提供服务。 不过,我不清楚的是这样的: 如果我使用执行阻塞I / O的标准JDBC驱动程序编写了运行长时间运行的数据库操作的servlet,那么处理程序线程是否不会从池中分派来处理此请求块? 如果请求的速度超过了数据库请求的执行速度,那么处理程序线程池会耗尽一些时间? 所以对于像这样的应用程序,是否有任何好处在一个非阻塞docker的networking服务器上运行? 如果servlet本身对数据库使用了另一层非阻塞访问权限,那么是否真正产生了非阻塞性的好处呢? 还是有什么我失踪? 请说明是否有一些魔术通过它将阻止数据库操作比阻塞的Web服务器支付更less的代价。 PS:为了对比,我在这里阅读了关于Node.js的内容 – 单线程非阻塞IO模型如何在Node.js中工作 – 似乎表明Node在下面使用libuv并应用其他技术来翻译代码中的所有阻塞操作(例如数据库访问和sleep() )到事件callback,确保事件循环和内部线程池永远不会阻塞阻塞callback。 尽pipe对我来说还是有点狼狈的,但是假设Node对了,Jetty可以承诺吗? 对于不是以非阻塞方式写入的servlet,也是如此?

无法安装seleniumwebdriver

我正在下面的安装seleniumwebdriver的消息 vikas@vikas-pc:~$ npm install selenium-webdriver | |—————————————————————————| WARN engine selenium-webdriver@3.6.0: wanted: {"node":">= 6.9.0"} (current: {"node":"4.2.6","npm":"3.5.2"}) WARN engine selenium-webdriver@3.6.0: wanted: {"node":">= 6.9.0"} (current: {"novikas@1.0.0 /home/vikas `– selenium-standalone@6.11.0 除了这个版本检查 vikas@vikas-pc:~$ node -v v4.2.6 vikas@vikas-pc:~$ npm -v 3.5.2 我应该如何解决这个问题?

如何在Appiumconfiguration中configuration通用path`/ nodejs`和`/ main.js`path

我需要configuration通用path,而不是在Appiumconfiguration中传递硬编码/nodejs和/main.jspath,如C:\Program Files (x86)\Appium\node.exe" lib\server\main.js 像下面的东西System.getProperty(user.dir)+"src//test//resources//Config.txt";