当前位置: 首页 > news >正文

电子商务网站开发流程wordpress文章加密无法分类

电子商务网站开发流程,wordpress文章加密无法分类,线上免费logo设计,营销型网站设计流程通常#xff0c;在开发人员或/和针对实际场景进行测试期间#xff0c;我们#xff08;开发人员#xff09;面临着运行成熟的HTTPS服务器的需求#xff0c;可能同时进行一些模拟。 在JVM平台上#xff0c;除非您知道适合此工作的正确工具#xff0c;否则它过去并不是一件… 通常在开发人员或/和针对实际场景进行测试期间我们开发人员面临着运行成熟的HTTPS服务器的需求可能同时进行一些模拟。 在JVM平台上除非您知道适合此工作的正确工具否则它过去并不是一件容易的事。 在这篇文章中我们将使用出色的Spray框架和Scala语言创建一个完全可操作的HTTPS服务器的框架。 首先我们需要分别生成x509证书和私钥。 幸运的是使用openssl命令行工具非常容易。 openssl req -x509 -sha256 -newkey rsa:2048 -keyout certificate.key -out certificate.crt -days 1024 -nodes 在JVM平台上我们的基本目标是拥有Java密钥库 JKS 这是安全证书的存储库。 但是要将我们新生成的证书导入JKS 我们必须以PKCS12格式导出它然后从中创建密钥库。 同样在resque上使用openssl 。 openssl pkcs12 -export -in certificate.crt -inkey certificate.key -out server.p12 -name sample-https-server -password pass:change-me-please 请注意存档服务器.p12受密码保护。 现在最后一步涉及JDK发行版中的命令行工具keytool 。 keytool -importkeystore -srcstorepass change-me-please -destkeystore sample-https-server.jks -deststorepass change-me-please -srckeystore server.p12 -srcstoretype PKCS12 -alias sample-https-server 结果是受密码保护的sample-https-server.jks密钥库我们可以在HTTPS服务器应用程序中使用它来配置SSL上下文。 Spray有非常好的文档和大量示例其中一个示例SslConfiguration 我们可以用来配置KeyManager TrustManager和SSLContext 。 trait SslConfiguration {// If there is no SSLContext in scope implicitly, the default SSLContext is // going to be used. But we want non-default settings so we are making // custom SSLContext available here.implicit def sslContext: SSLContext {val keyStoreResource /sample-https-server.jksval password change-me-pleaseval keyStore KeyStore.getInstance(jks)keyStore.load(getClass.getResourceAsStream(keyStoreResource), password.toCharArray)val keyManagerFactory KeyManagerFactory.getInstance(SunX509)keyManagerFactory.init(keyStore, password.toCharArray)val trustManagerFactory TrustManagerFactory.getInstance(SunX509)trustManagerFactory.init(keyStore)val context SSLContext.getInstance(TLS)context.init(keyManagerFactory.getKeyManagers, trustManagerFactory.getTrustManagers, new SecureRandom)context}// If there is no ServerSSLEngineProvider in scope implicitly, // the default one is going to be used. But we would like to configure// cipher suites and protocols so we are making a custom ServerSSLEngineProvider// available here.implicit def sslEngineProvider: ServerSSLEngineProvider {ServerSSLEngineProvider { engine engine.setEnabledCipherSuites(Array(TLS_RSA_WITH_AES_128_CBC_SHA))engine.setEnabledProtocols(Array( TLSv1, TLSv1.1, TLSv1.2 ))engine}} } 这里有几点要强调。 首先使用先前创建的我们自己的密钥库为方便起见我们将其存储为类路径资源 val keyStoreResource /sample-https-server.jks val password change-me-please 此外我们仅配置TLS TLS v1.0 TLS v1.1和TLS v1.2 不支持SSLv3 。 除此之外我们仅启用一种密码 TLS_RSA_WITH_AES_128_CBC_SHA 。 这样做主要是为了说明因为在大多数情况下都可以启用所有受支持的密码。 engine.setEnabledCipherSuites(Array(TLS_RSA_WITH_AES_128_CBC_SHA)) engine.setEnabledProtocols(Array( TLSv1, TLSv1.1, TLSv1.2 )) 这样我们就可以创建一个真正的HTTPS服务器了这要归功于Spray框架只有几行 class HttpsServer(val route: Route RestService.defaultRoute) extends SslConfiguration {implicit val system ActorSystem()implicit val timeout: Timeout 3 seconds val settings ServerSettings(system).copy(sslEncryption true)val handler system.actorOf(Props(new RestService(route)), name handler)def start(port: Int) Await.ready(IO(Http) ? Http.Bind(handler, interface localhost, port port, settings Some(settings)), timeout.duration)def stop() {IO(Http) ? Http.CloseAllsystem.stop(handler)} } 任何根本不执行任何操作的HTTPS服务器不是很有用。 这就是路由属性发挥作用的地方使用Spray路由扩展我们将映射或路由传递给HTTP服务参与者 RestService 直接处理请求。 class RestService(val route: Route) extends HttpServiceActor with ActorLogging {def receive runRoute {route} } 使用默认路由就是 object RestService {val defaultRoute path() {get {complete {OK!\n}}} } 基本上这就是我们所需要的我们的HTTPS服务器已准备好进行测试 运行它的最简单方法是使用Scala应用程序。 object HttpsServer extends App {val server new HttpsServerserver.start(10999) } 尽管是用Scala编写的但我们可以轻松地将其嵌入到任何Java应用程序中对于Java开发人员来说使用一些非标准的命名约定例如 public class HttpsServerRunner {public static void main(String[] args) {final HttpsServer server new HttpsServer(RestService$.MODULE$.defaultRoute());server.start(10999);} } 一旦启动并运行最简单的方法是sbt run 就可以从浏览器或使用curl命令行客户端访问我们简单的HTTPS服务器的公开默认路由 -k命令行参数关闭SSL证书验证 $ curl -ki https://localhost:10999HTTP/1.1 200 OK Server: spray-can/1.3.3 Date: Sun, 04 Oct 2015 01:25:47 GMT Content-Type: text/plain; charsetUTF-8 Content-Length: 4OK! 或者可以将证书与curl命令一起传递以便进行完整的SSL证书验证例如 $ curl -i --cacert src/main/resources/certificate.crt https://localhost:10999HTTP/1.1 200 OK Server: spray-can/1.3.3 Date: Sun, 04 Oct 2015 01:28:05 GMT Content-Type: text/plain; charsetUTF-8 Content-Length: 4OK! 一切看起来不错但是我们可以使用HTTPS服务器作为集成测试套件的一部分来验证/存根/模拟例如与第三方服务的交互吗 答案是肯定的这要归功于JUnit规则。 让我们看一下HttpsServerRule的最简单实现 class HttpsServerRule(BeanProperty val port: Int, val route: Route) extends ExternalResource {val server new HttpsServer(route)override def before() server.start(port)override def after() server.stop() }object HttpsServerRule {def apply(port: Int) new HttpsServerRule(port, RestService.defaultRoute);def apply(port: Int, route: Route) new HttpsServerRule(port, route); } 我们默认实现的JUnit测试用例使用了出色的RestAssured库该库提供了Java DSL可轻松测试REST服务。 public class DefaultRestServiceTest {Rule public HttpsServerRule server HttpsServerRule$.MODULE$.apply(65200);Testpublic void testServerIsUpAndRunning() {given().baseUri(https://localhost: server.getPort()).auth().certificate(/sample-https-server.jks, change-me-please).when().get(/).then().body(containsString(OK!));} } 可以肯定的是您对默认实现无法做很多事情因此提供自定义选项是必不可少的选择。 幸运的是我们很早就通过接受路线来解决了这一问题。 object CustomRestService {val route path(api / user / IntNumber) { id get {complete {ab.com}}} } 这是一个测试用例 public class CustomRestServiceTest {Rule public HttpsServerRule server HttpsServerRule$.MODULE$.apply(65201, CustomRestService$.MODULE$.route());Testpublic void testServerIsUpAndRunning() {given().baseUri(https://localhost: server.getPort()).auth().certificate(/sample-https-server.jks, change-me-please).when().get(/api/user/1).then().body(containsString(ab.com));} } 事实证明创建完善的HTTPS服务器一点也不难而且一旦您知道执行此操作的正确工具它可能真的很有趣。 Spray框架是那些魔术工具之一。 你们中许多人都知道 Spray将被Akka HTTP取代后者最近已经发布了1.0版本但目前缺少许多功能包括HTTPS支持因此Spray是可行的选择。 完整的项目可以在Github上找到 。 翻译自: https://www.javacodegeeks.com/2015/10/creating-sample-https-server-for-fun-and-profit.html
http://www.zqtcl.cn/news/213874/

相关文章:

  • 仙居谁认识做网站的有哪些好的网站建设
  • 互动广告机网站建设怀集网站建设
  • 好的 做网站的软件公司pinterest app下载
  • 公司网站报价邯郸软件定制
  • 产品毕业设计代做网站资料库网站源码
  • 交易类网站做支付宝功能建设银行网站收款怎么打明细
  • 广州找人做网站做网站网关备案
  • 网站的布局方式有哪些内容免费ppt模板下载公众号
  • 色91Av做爰网站获胜者网站建设
  • 企业做网站要多少钱简单网页设计模板网站
  • 住宅城乡建设部门户网站seo主管的seo优化方案
  • 商洛做网站电话北京做网站比较大的公司
  • 某俄文网站电脑做网站服务器
  • 广州网站建设开发团队江苏省建设招标网站
  • 南昌建设工程质量监督网站wordpress菜单登录
  • 网站设计贵不贵网站seo设置是什么
  • 不属于企业网站建设基本标准的是南通网站建设知识
  • 玉树州wap网站建设公司做试玩网站
  • 商城网站怎么建保定网络营销网站建设
  • 检索类的网站建设公司的网站建设规划书
  • 百度做网站需要交钱吗保定网站建设平台分析
  • 张家界建设局网站电话优化关键词排名公司
  • 宁夏网站建设一条龙网站建设中的图片及视频要求
  • 某些网站dns解析失败湛江制作企业网站
  • 网站开发用什么代码长沙哪家公司做网站
  • 做视频找素材的网站有哪些wordpress 合法评论
  • php网站开发程序填空题高水平网站运营托管
  • 揭东建设局网站wordpress建站后发布
  • 济南哪里有建网站制作视频的手机软件
  • 建设教育网站的国内外研究现状沧州市宇通网站建设公司