HTTPS通信,System.setProperty线程安全么

问题描述

由于项目原因,使用HTTPS通信,里面会用到代码指定证书环境,以下代码就是指定方法,可能会多个线程运行,XX和YY多个线程值不一样,请高手告知是否会有线程安全问题。System.setProperty("javax.net.ssl.keyStore",XX); System.setProperty("javax.net.ssl.keyStorePassword",YY);

解决方案

1、System.setProperty("javax.net.ssl.keyStore",XX); System.setProperty("javax.net.ssl.keyStorePassword",YY);这是全局设置 可以考虑在程序启动后设置一次就行难道每次都是不同的证书?
解决方案二:
线程安全的。。底层是通过hashtble来实现的
解决方案三:
System.setProperty()是jre系统的全局变量,设置了会影响所有的调用,不能这么干,你可以用一个ThreadLocal把这些参数存起来,有一个老帖子关于它的争论,希望能够帮助到你:http://www.iteye.com/problems/20549
解决方案四:
这个问题我也遇到过,是用Authenticator.setDefault()方法的时候,不知道是不是线程安全的,所以没敢用。Authenticator.setDefault()跟System.setProperty()应该差不多,文档没说线程安全,而且看源码有不少synchronized,却没有ThreadLocal,所以猜测应该不是线程安全的。如果猜测错误,恳请高手解惑!如果不是线程安全的,这俩玩意儿如何在多线程环境中使用呢?如果不能解决此问题,这俩玩意儿岂不是鸡肋。。。
解决方案五:
会的。多个线程同时set,get的时候就会乱掉。可能的话,上ThreadLocal好些。

时间: 2024-09-14 01:37:09

HTTPS通信,System.setProperty线程安全么的相关文章

Android App 安全的HTTPS 通信

漏洞描述 对于数字证书相关概念.Android 里 https 通信代码就不再复述了,直接讲问题.缺少相应的安全校验很容易导致中间人攻击,而漏洞的形式主要有以下3种: 自定义X509TrustManager.在使用HttpsURLConnection发起 HTTPS 请求的时候,提供了一个自定义的X509TrustManager,未实现安全校验逻辑,下面片段就是常见的容易犯错的代码片段.如果不提供自定义的X509TrustManager,代码运行起来可能会报异常(原因下文解释),初学者就很容易在

浅析Android系统中HTTPS通信的实现_java

前言最近有一个跟HTTPS相关的问题需要解决,因此花时间学习了一下Android平台HTTPS的使用,同时也看了一些HTTPS的原理,这里分享一下学习心得. HTTPS原理HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上进行传输的.HTTPS协议是在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议.所以,研究HTTPS协议原理,最终就是研究S

HTTPS 通信原理及详细介绍_win服务器

HTTPS 通信原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证.最初由netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法.现在广泛应用于互联网上安全敏感通讯. 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过T

java线程间通信[实现不同线程之间的消息传递(通信),生产者和消费者模型]

线程通信,线程之间的消息传递: 多个线程在操作同一个资源,但对共享资源的操作动作不同:它们共享同一个资源,互为条件,相互依赖,相互通信让任务向前推进. 线程的同步,可以解决并发更新同一个资源,实现线程同步;但不能用来实现线程间的消息传递. 线程通信生产者和消费者和仓库是个典型模型: 生产者:没有生产之前通知消费者等待,生产产品结束之后,马上通知消费者消费 消费者:没有消费之前通知生产者等待,消费产品结束之后,通知生产者继续生产产品以供消费 线程通信:使用java中Object中提供的: publ

在服务器上配置仅使用HTTPS通信的教程_Linux

HTTP 严格传输安全(HSTS)是一种安全功能,web 服务器通过它来告诉浏览器仅用 HTTPS 来与之通讯,而不是使用 HTTP.本文会说明如何在 Apache2.Nginx 和 Lighttpd 上如何启用 HSTS.在主流的 web 服务器上测试通过: Nginx 1.1.19. Lighttpd 1.4.28 和 Apache 2.2.22 ,环境为 Ubuntu 12.04. Debian 6 & 7 和 CentOS 6,只需要调整部分参数就可以工作在其它的发行版上.什么是 HTT

线程及 进程间的通信问题! .

一个很好的编程随想的博客http://program-think.blogspot.com/2009/03/producer-consumer-pattern-0-overview.html 架构设计:生产者/消费者模式[0]:概述  1.如何确定数据单元2.队列缓冲区3.环形缓冲区4.双缓冲区 生产 消费 2010-06-01 10:13   #include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp>

深入解析Java的线程同步以及线程间通信_java

Java线程同步 当两个或两个以上的线程需要共享资源,它们需要某种方法来确定资源在某一刻仅被一个线程占用.达到此目的的过程叫做同步(synchronization).像你所看到的,Java为此提供了独特的,语言水平上的支持. 同步的关键是管程(也叫信号量semaphore)的概念.管程是一个互斥独占锁定的对象,或称互斥体(mutex).在给定的时间,仅有一个线程可以获得管程.当一个线程需要锁定,它必须进入管程.所有其他的试图进入已经锁定的管程的线程必须挂起直到第一个线程退出管程.这些其他的线程被

如何用管道实现线程间多次通信,不是一次

问题描述 最近看到管道这里,自己写了个用管道来实现两个线程通信的程序,但是不知道为什么第一次通信可以成功,写线程可以写入,读线程可以读出,第二次就出现异常,异常信息是Readenddead.看网上很多人讲是因为第二次通信时读线程已经死亡.请问如何能够用管道实现多次通信? 解决方案 解决方案二:while能解决吗不过我发现用管道流在两个线程间来回传递数据,效率非常低,不知道的还以为加了延迟解决方案三:我就是想知道你是怎么实现的..代码...就像我说我的代码总是报异常空指针一样,你知道大体上为什么会

什么是.Net的异步机制(线程间通信)

前几篇文章我已经对异步的操作进行的详细的解释.异步操作也是线程的一种,当我们开始一个异步操作(新线程),完成调用后需要和其他线程通信(可能需要告知状态信息),这时候我们就需要线程间的通信编程. 线程间通信 我们看下面的图 图1 我们来看线程间通信的原理:线程(Thread B)和线程(Thread A)通信, 首先线程A 必须实现同步上下文对象(Synchronization Context), 线程B通过调用线程A的同步上下文对象来访问线程A,所有实现都是在同步上下文中完成的.线程B有两种方式