草庐IT

政务安全

全部标签

java - Collections.synchronizedMap(new LinkedHashMap());没有使 Map 线程安全

我正在使用以下构造来创建线程安全的Map。Collections.synchronizedMap(newLinkedHashMap());尽管我遇到了ConcurrentModificationException错误。 最佳答案 如果没有代码,很难猜测真正的问题是什么,但我的猜测是,您没有使用返回的集合来执行操作。根据javadocInordertoguaranteeserialaccess,itiscriticalthatallaccesstothebackingcollectionisaccomplishedthroughthe

java - 使用 lambda 保护线程安全

我正在尝试更新一些代码以使用lambda表达式,但我在保持线程安全方面遇到了一些麻烦。我有多个线程正在运行,最终调用以下回调,它有一个synchronized方法,可以将一些结果添加到LinkedList。finalListmappedDocs=newLinkedList();finalMapCallbackmapCallback=newMapCallback(){@Overridepublicsynchronizedvoiddone(intfile,Listresults){mappedDocs.addAll(results);}};但是,当我将它转换为lambda表达式时,我丢失了

java - 使用 functional-java 将闭包添加到 Java 生产项目有多安全?

我喜欢在Java中使用闭包。我读过它们可能会或可能不会进入Java7。但是一个名为functional-java的开源项目已经实现了包括闭包在内的功能特性。在企业生产应用程序中使用这样的库有多安全?目前有没有更好的方式给Java添加闭包? 最佳答案 闭包肯定不会进入Java7,因为缺乏对单一实现的共识。Seehere.FunctionalJava库已经过全面测试和积极开发。如果您浏览源代码,您会发现它只是简单的沼泽标准Java,并且没有太多可能出错的地方。我知道至少有一个在生产中使用它的关键任务企业应用程序。此应用程序拥有超过一百万

java - 变量的线程安全设置(Java)?

给定以下代码:publicclassFooBar{publicstaticvolatileConcurrentHashMapmyConfigData=newConcurrentHashMap();}publicclassUpdaterThreadimplementsRunnable{publicvoidrun(){//QuerytheDatafromtheDBandUpdatetheFooBarconfigDataFooBar.myConfigData=ConfigDataDAO.getLatestConfigFromDB();}}线程类将定期更新myConfigData成员变量(每5

java - Spring 安全oauth2 : get username in REST webservice

我已经创建了一个RESTful网络服务来对工作流执行操作。Web服务使用我自己的授权服务器通过oauth2进行保护。我想在我的工作流程中添加有关谁对其执行操作的信息。我想不通的是,谁可以获取调用Web服务的用户名。对于Web服务实现,我使用jersey(1.18.1),为了安全,我使用spring-security-oauth2(2.0.2.RELEASE)。我正在使用数据库token存储,其中包含一个表OAUTH_ACCESS_TOKEN(TOKEN_ID、TOKEN、AUTHENTICATION_ID、USER_NAME、CLIENT_ID、AUTHENTICATION、REFRE

java - 创建帐户时,如何将密码哈希安全地存储在内存中?

我们基于Web的应用程序将用户帐户绑定(bind)到使用帐户创建期间指定的密码的用户。在Java的情况下,在将其哈希值保存在数据库中之前,如何安全地处理密码。更具体地说,如何确保包含密码的字符串在足够短的时间间隔内被垃圾回收? 最佳答案 如果有可能(在web应用程序中可能比较困难),最好将密码存储在字符数组中,而不是存储在字符串中。如果您完成存储密码,您可以使用Array.fill()在内存中覆盖它。并通过丢弃它使垃圾收集器可以使用该引用:Arrays.fill(password,'');password=null;我只是注意到取消

java - 实现线程安全共享计数器的功能方法

我是Scala和函数式编程的新手,我喜欢使用不可变对象(immutable对象)可以避免许多线程安全陷阱的想法。一件事仍然困扰着我,它就是用来教授线程安全的经典示例——共享计数器。我想知道是否有可能实现一个线程安全的计数器(在这个例子中是一个请求计数器),使用不可变对象(immutable对象)和函数概念,并完全避免同步。因此,这里首先是计数器的经典可变版本供引用(请原谅公共(public)成员变量,只是为了示例的简洁)可变的,非线程安全的版本:publicclassServletextendsHttpServlet{publicintrequestCount=0;@Overridep

java - java.util.concurrent 集合的安全发布

此代码中的volatile是否冗余?publicclassTest{privatevolatileMapmap=null;publicvoidresetMap(){map=newConcurrentHashMap();}publicMapgetMap(){returnmap;}}换句话说,map=newConcurrentHashMap();提供任何可见性保证?据我所知,ConcurrentMap提供的唯一保证是:ActionsinathreadpriortoplacinganobjectintoaConcurrentMapasakeyorvaluehappen-beforeactio

java - 类型安全的通用 Java 观察器编译时错误

要求我正在尝试编写一对Observer/Observable类。我想对Observer进行参数化,以便可以进行类型安全的更新调用。想象一下这个版本:classViewimplementsObserver{@Overridepublicvoidupdate(Modelmodel){render(model);}//nocasting:)}而不是这个需要转换的版本:classViewimplementsObserver{@Overridepublicvoidupdate(Objectmodel){render((Model)model);}//casting:(}尝试这是我目前所拥有的。我

java - 用于高度安全的Web应用程序的工具和技术

Closed.Thisquestionneedstobemorefocused。它当前不接受答案。想要改善这个问题吗?更新问题,使它仅关注editingthispost的一个问题。5年前关闭。Improvethisquestion我们正计划构建一个需要高度安全的Web应用程序,因为大量金钱和声誉受到威胁。因此,我正在寻找有助于实现这一目标的工具和技术。这些工具和技术应有助于防止SQL注入(inject),跨站点脚本漏洞,远程代码执行等问题。我们的团队对此类漏洞有扎实的知识。但是每个开发人员都会犯错误,而且简单的错误不应导致安全漏洞。Web应用程序框架,应用程序服务器,编程语言,安全性库