小编Mar*_*cel的帖子

为什么ConcurrentHashMap会阻止空键和值?

ConcurrentHashMap的JavaDoc 说:

类似Hashtable但不同HashMap,这个类就不会允许null用作键或值.

我的问题:为什么?

第二个问题:为什么Hashtable不允许null?

我使用了很多HashMaps来存储数据.但是当更改为ConcurrentHashMap时,由于NullPointerExceptions,我遇到了几次麻烦.

java concurrenthashmap

136
推荐指数
3
解决办法
5万
查看次数

如何在登录后将SSH用户限制为一组预定义的命令?

这是一个安全的想法.我们的员工可以访问Linux服务器上的一些命令,但不是全部.他们应该可以访问日志文件(less logfile)或启动不同的命令(shutdown.sh/ run.sh).

背景资料:

所有员工都使用相同的用户名访问服务器:我们的产品以"正常"用户权限运行,不需要"安装".只需在用户目录中解压缩并运行即可.我们管理了几个"安装"应用程序的服务器.在每台机器上都有一个用户johndoe.我们的员工有时需要在命令行上访问应用程序以访问和检查日志文件或手动重启应用程序.只有一些人才能拥有完整的命令行访问权限.

我们在服务器上使用ppk身份验证.

如果employee1只能访问日志文件而employee2也可以执行X等,这将是很好的...

解决方案: 作为解决方案,我将使用接受答案command中所述的选项.我将创建自己的小shell脚本,这将是可以为某些员工执行的唯一文件.该脚本将提供几个可以执行的命令,但没有其他命令.我将使用下列参数从为表示在这里:authorized_keys

command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host
Run Code Online (Sandbox Code Playgroud)

这对我们来说足够安全.谢谢,社区!

linux ssh shell

80
推荐指数
5
解决办法
14万
查看次数

如何防止tomcat会话劫持?

在我的web.xml中,我为某些资源定义了用户数据约束:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Personal Area</web-resource-name>
        <url-pattern>/personal/*</url-pattern>
    </web-resource-collection>
    <web-resource-collection>
        <web-resource-name>User Area</web-resource-name>
        <url-pattern>/user/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)
  1. 当我用http加载页面时,我的cookie中有我的JSESSIONID ID1.
  2. 当我更改为context/user/sample.faces时,Tomcat会将302重定向到HTTPS.但我的JSESSIONID仍然是ID1.

我认为这是一个漏洞?或者是我的配置错误?

我看到的问题如下:在使用cookie ID1浏览HTTP时,有一个攻击者正在监听我的网络流量.他"窃取"我的cookie ID1.现在我切换到HTTPS,我的cookie仍然是ID1.我登录 然后攻击者能够接管我的会话,因为他知道我的cookie ...

java tomcat

15
推荐指数
1
解决办法
1万
查看次数

在哪种情况下,年轻一代的Java垃圾收集持续多久?

昨天我们在一个JBoss应用服务器的服务器日志中输出了以下GC:

51628.286: [GC 51628.288: [ParNew: 1843200K->204800K(1843200K), 21.3196040 secs]
5177730K->3743415K(7987200K), 21.3217870 secs]
[Times: user=1.38 sys=0.33, real=21.32 secs] 
Run Code Online (Sandbox Code Playgroud)

我理解这样的输出:年轻一代的大小为1843200K.前一代的尺寸为1843200K,尺寸在204800K之后.收集持续了21.3秒.

通常我们的年轻一代收藏持续时间<1秒.yg集合在哪种情况下持续这么久?

我们的JVM参数:

-server 
-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails 
-XX:NewRatio=3
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC 
-XX:+UseCMSCompactAtFullCollection 
-XX:CMSInitiatingOccupancyFraction=60 
-XX:MaxPermSize=256m 
-Xss512k 
-Xms8000m 
-Xmx8000m
Run Code Online (Sandbox Code Playgroud)

java版本:

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

谢谢,马塞尔

java garbage-collection

10
推荐指数
1
解决办法
1474
查看次数

Gigaspaces还有其他选择吗?

有什么东西像gigaspace一样好,稳定,功能丰富吗?

java gigaspaces java-ee

8
推荐指数
2
解决办法
4116
查看次数

如何衡量年轻一代收集的记忆总和?

我想测量我的java应用程序中的内存分配数据,即分配的所有对象的大小总和.由于对象分配是在年轻一代完成的,这似乎是正确的地方.

我知道jconsole,我知道JMX bean,但我找不到正确的变量......目前我们正在解析gc日志输出文件,但这很难.理想情况下,我们想通过JMX测量它...

我怎样才能获得这个价值?

查德威克发表评论后的其他信息:

我想知道我的应用程序使用了多少内存.这是在JBoss Appserver中运行的相当大的软件.每隔4周就有一个新版本的软件,我们需要比较旧版本和新版本之间的内存消耗.仅仅比较特定时间的老一代的当前价值是不够的.了解分配了多少/更少的内存非常有用.由于许多物体在年轻一代中被收集,我需要在那里测量它.

与此同时,我对此有一个估计.我会发布它作为答案.

谢谢,马塞尔

java garbage-collection

7
推荐指数
1
解决办法
1799
查看次数

java的时间序列数据库?

我想用Java存储数百万个时间序列条目(长时间,双值).(我们的监控系统目前将每个条目存储在一个大型mySQL表中,但性能非常糟糕.)

是否有在Java中实现的时间序列数据库?

java database time-series opentsdb

7
推荐指数
1
解决办法
7533
查看次数

那里有任何数据驱动的开源JEE5 EJB3 + JSF Sample Project吗?

我正在寻找一个开源项目,它使用EJB3作为后端,JSF作为前端.它应该不会是一个教程,但真正的人使用的是真正的应用.

应用程序应该是数据驱动的,即以下方面是基础,并且使应用程序的80%或更多.

  • 基于表单(许多输入表单)
  • 表格视图,主/细节等
  • CRUD(创建/读取/更新/删除) - 已实施操作
  • 支持关系:1:1,1:n
  • 面向JPA实体Bean + EJB 3无状态会话Bean
  • 没有JBoss Seam

典型应用是CRM/ERP项目,其中人们使用列表,表格和表单进行大量工作.但任何其他"管理"应用程序也应该没问题.

我知道petstore,但该应用程序不是基于表单的.petstore是最终用户应用程序.我正在寻找后端用户应用程序.

像Microsofts AdventureWorks系列,但是使用EJB3 + JSF ......像SugarCRM,但是使用EJB3 + JSF ......

我google 了很多 ...没有结果:-(

  • @Matthew:随NetBeans提供的示例过于简单.
  • @JB:它应该是一个真正的应用程序.不是"如何做EJB + JSF"应用程序.
  • @ 50-50:由于接缝投票失败
  • @Kariem:我不能使用seam,AppFuse没有EJB Session Beans

java jsf open-source java-ee java-ee-5

6
推荐指数
1
解决办法
3219
查看次数