- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试了解如何保护 JBoss 5.1.0.GA 默认提供的 JMXConnectorServerService。
目前,如果我将以下 URL 粘贴到 JConsole 中,则无需任何身份验证即可直接访问 JMX:service:jmx:rmi:///jndi/rmi://:1290/jmxconnector
然后我这样做是为了保护我的 JMXInvoker,希望这样可以保护所有 JMX 访问:http://objectopia.com/2009/10/01/securing-jmx-invoker-layer-in-jboss/
但是,显然,这不适用于 JMXConnectorServerService。我仍然可以通过 jconsole 使用上述服务 URL 访问 JMX。
然后我发现了这个功能请求还没有被满足:https://issues.jboss.org/browse/JBAS-8159
现在,目前我并不担心疯狂的安全措施。此 URL 不会暴露给外部网络。所以,我只想看看用“jmx-console”安全域保护 jmx-remoting.sar 的最简单方法是什么?
我可以切换到默认的 MBean 服务器,但显然,在 5.1.0.GA 中,这很痛苦:https://community.jboss.org/thread/153594
我非常感谢在这方面的任何意见。
谢谢!
最佳答案
我不认为该服务已得到保障,但有一个 patch .
对于一个稍微简单一点的版本,我会在这里冒险,因为我没有在 AS 5 上测试过,但是我将它向后移植到 AS 4 并且它工作正常。
我不确定您使用的是哪个版本,但我们假设它是 this one . EAP 版本有一个稍微复杂的版本,但前提是一样的。您需要延长 JMXConnectorServerService和 JMXConnectorServerServiceMBean .
在这个实现中,创建服务器的代码如下所示:
// create new connector server and start it
connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbeanServer);
/** The name of the JAAS domain to use for authentication */
protected String jaasDomain = null;
...
/**
* Returns the name of the JAAS domain to use for authentication
* @return the name of a JAAS Domain
*/
public String getJaasDomain() {
return jaasDomain;
}
/**
* Sets the name of the JAAS domain to use for authentication
* @param jaasDomain the JAAS Domain to use for authentication
*/
public void setJaasDomain(String jaasDomain) {
this.jaasDomain = jaasDomain;
}
public void start() throws Exception
{
// the address to expose in the urls
String host = System.getProperty("java.rmi.server.hostname");
// check to see if registry already created
rmiRegistry = LocateRegistry.getRegistry(host, registryPort);
if (rmiRegistry != null)
{
try
{
rmiRegistry.list();
}
catch(RemoteException e)
{
log.debug("No registry running at host '" + host +
"', port '" + registryPort + "'. Will create one.");
rmiRegistry = LocateRegistry.createRegistry(registryPort, null, new DefaultSocketFactory(bindAddress));
}
}
else
{
rmiRegistry = LocateRegistry.createRegistry(registryPort, null, new DefaultSocketFactory(bindAddress));
}
String serviceURL = "service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":" + registryPort + jndiPath;
JMXServiceURL url = new JMXServiceURL(serviceURL);
// create new connector server and start it
// ==== NEW AUTH CODE HERE ====
final Map<String, Object> environment = new HashMap<String, Object>();
environment.put("jmx.remote.x.login.config", jaasDomain);
connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, environment, mbeanServer);
// ==== NEW AUTH CODE ENDS ====
connectorServer.start();
log.info("JMX Connector server: " + serviceURL);
}
/**
* Validates the name of the passed JAAS domain.
* If the name is not valid, a RuntimeException will the thrown.
* @param domain The name of the JAAS domain to validate.
*/
private void validateJaasDomain(String domain) {
try {
new LoginContext(domain);
} catch (Exception e) {
throw new RuntimeException("The JAAS Domain [" + domain + "] could not be loaded", e);
}
}
/**
* Returns the name of the JAAS domain to use for authentication
* @return the name of a JAAS Domain
*/
public String getJaasDomain();
/**
* Sets the name of the JAAS domain to use for authentication
* @param jaasDomain the JAAS Domain to use for authentication
*/
public void setJaasDomain(String jaasDomain);
<!-- ======================================================== -->
<!-- Example Vijay JMX Remoting Service Configuration file -->
<!-- ======================================================== -->
<server>
<mbean code="com.vijay.JMXConnectorServerService"
name="jboss.remoting:service=JMXConnectorServer,protocol=rmi"
display-name="JMX Connector Server (RMI)">
<attribute name="BindAddress">
<!-- Get the port from the ServiceBindingManager -->
<value-factory bean="ServiceBindingManager" method="getStringBinding"
parameter="jboss.remoting:service=JMXConnectorServer,protocol=rmi"/>
</attribute>
<!-- if comment this out, will use 1099 as default and will conflict -->
<!-- with default JNP (JNDI) port. -->
<attribute name="RegistryPort">
<!-- Get the port from the ServiceBindingManager -->
<value-factory bean="ServiceBindingManager" method="getIntBinding"
parameter="jboss.remoting:service=JMXConnectorServer,protocol=rmi"/>
</attribute>
<!-- the path to which will be bound in rmi registry -->
<!-- the commented value below is the default. -->
<!-- <attribute name="JndiPath">/jmxconnector</attribute> -->
<attribute name="JaasDomain">jmx-console</attribute>
</mbean>
</server>
关于security - 在 JBoss 5.1.0.GA 中保护 JMXConnectorServerService (jmx-remoting.sar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385172/
我正在学习汇编语言(特定于 x86)。我已经明白,SAL 和 SHL 的工作方式类似(清除 lsb 并将 msb 传送到 CF),从这里开始 Difference between SHL and SA
我正在尝试连接 4 个 mp4 文件。我正在使用下面的命令,但无法连接 ffmpeg -i new1.mp4 -i new2.mp4 -i new3.mp4 -i new4.mp4 -filter_c
我正在尝试为我正在生成的图表输入多个 sar 文件。我可以像这样一次输入一个文件: LC_ALL=C sar -A -f/var/log/sa/sa05 >>/tmp/sar.data3.txt 这个
我正在尝试显示特定日期之间的 sar(CPU 指标)指标,但我不知道应该如何完成。 任何帮助都会非常感谢! 最佳答案 据我所知,没有特定的选项可以在 2 个日期之间获得结果。 但是: 1) sysst
我正在尝试用 bash 编写一些东西来显示 sar 在本月记录的数据。到目前为止我所拥有的是 for file in /var/log/sa/sa??; do sar -q -f "$file" |
我正在为 future 几天的更多流量做准备,我想确保服务器能够处理它。 运行 sar -q,“3.5”的负载在 32 CPU 架构上似乎并不多: 但是,我不确定内存。 运行 sar -r 显示 98
我有 2 个视频:v1.mp4 和 v2.mp4。我想制作一个输出视频,它是一个复制的 v2.mp4 视频,但具有与 v1.mp4 相同的宽度、高度、SAR。 我怎么能通过 ffmpeg 命令做到这一
我正在尝试合并两个视频,但我不断收到错误消息: "Input link in 1:v0 parameters (size 320x480, SAR 2:1) do not match the corr
是否有一个 gradle 插件可以让我组装一个 JBoss sar 文件,包括它的 jboss-service.xml 部署描述 rune 件?感谢您提供有关如何最好地做到这一点的任何提示。 最佳答案
在我正在分析的反汇编程序中,我找到了该命令 sar %eax 这是做什么的?我知道带有两个参数的 sar 会执行右移,但我找不到只有一个参数的含义。 该程序是为 Intel x86 处理器编译的。 最
我曾经使用 sar -n DEV 1 来了解 El Capitan 中的网络。 更新后,相同的命令出现错误:-bash: sar: command not find。 那么,苹果是否用其他命令替换了该
我可以获取 Linux 中每个进程的内存使用情况吗?我们使用 sysstat/sar 监控我们的服务器。但除此之外看到内存在某个时候消失了,我们无法确定哪个进程越来越大。sar(或其他工具)有没有办法
我对 shell 编程比较陌生,想知道是否有一种简单的方法可以将 sar 命令的结果输出到 csv 文件。使用 sar > file1.csv 可以完成这项工作,但格式不正确。所有数据都显示在一列中。
我们知道,当我们将一个二进制数向右移动时,它被除以 2。对于号码:1001 0001。假设存储在 AX 寄存器中: 如果我们认为它是无符号数(等于十进制的145):SHR AX, 1 将使 AX 等于
我正在尝试在 wildFly 10 中部署包含 sar 模块的 .ear。 我收到以下错误摘要: 2016-11-29 11:20:12,376 ERROR [org.jboss.as.control
我在我的一个项目中使用 SAR 来监控带宽,但我不确定它是否报告了正确的数据。所以我写了一个非常简单的虚拟程序(用java)来测试它,它打开一个服务器套接字,打开一个到该服务器套接字的客户端连接。服务
我正在尝试使用子进程解析 python 中的 sar 结果,每次我调用调用 sar 子进程的 python 代码时,它都会生成不同数量的行。这是重现此问题的最小程序: import sys impor
我正在尝试为几个 Linux 服务器生成内存利用率报告。我想每 10 分钟收集一次服务器的内存利用率百分比,我认为 sar 可以帮助获取该数据。早些时候我虽然列 %memused 将直接给出服务器的内
我正在用 Java 开发一个小型实用程序,用于监视远程 Linux 机器的 cpu。我正在使用 sar 命令来监视它。问题是,当我编写 sar 1 1 时,需要一些时间才能获得 cpu 使用率。我试过
命令 sar 中有一项名为 dentunusd。这意味着:目录缓存中未使用的缓存条目数。 我想知道: 什么是缓存条目? 什么是目录缓存? 他们在哪里? 谁能提供一些 Material ? 最佳答案 来
我是一名优秀的程序员,十分优秀!