gpt4 book ai didi

java - 在 Java 6 上运行的 JMX 客户端/服务器上支持 Kerberos 身份验证/授权

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:53 24 4
gpt4 key购买 nike

我有我的 JMX 服务器,它注册从本地文件读取的 bean,并根据需要将它们提供给其他 JMX 客户端。可以使用“jconsole”或在 Tomcat 容器下运行的 Java 应用程序访问服务器。

我想要的是添加身份验证以防止“未知”身份访问 JMX 服务器。为了实现这一点,我使用以下 JVM 选项添加了 Kerberos 身份验证@服务器

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=5555
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
-Djava.security.auth.login.config=./conf/jaas.conf
-Djava.security.krb5.conf=./conf/krb5.conf
-Dcom.sun.management.jmxremote.login.config=MyKrbAuth
-Ddynamic.mbean.store=./conf/mbeans
-Djava.net.preferIPv4Stack=true

我的 jaas.conf 看起来像这样 >>

MyKrbAuth {
com.sun.security.auth.module.Krb5LoginModule required debug=true debugNative=true;
};

当我使用上述配置启动我的 JMX 服务器并尝试使用“jconsole”连接它时,我在客户端收到以下异常并且连接失败>>

Cipher: Crypto Permission check failed
Cipher: granted: (CryptoPermission * 128)
Cipher: requesting: (CryptoPermission AES 256)

但是在服务器端认证似乎是成功的>>

[java] [STARTED] Mbean Server
[java] Debug is true storeKey false useTicketCache false useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
[java] [Krb5LoginModule] user entered username: username
[java]
[java] Acquire TGT using AS Exchange
[java] principal is user@localhost.com
[java] EncryptionKey: keyType=3 keyBytes (hex dump)=0000: FD 46 7C 02 19 9B 34 E9
[java] EncryptionKey: keyType=1 keyBytes (hex dump)=0000: FD 46 7C 02 19 9B 34 E9
[java] EncryptionKey: keyType=23 keyBytes (hex dump)=0000: FE 6D 82 01 8A D7 AB 60 98
[java] EncryptionKey: keyType=16 keyBytes (hex dump)=0000: 89 02 31 5D F7 5B 3E 89 BC F7 8A 01 A1 80 C7
[java] EncryptionKey: keyType=17 keyBytes (hex dump)=0000: A5 67 71 17 F6 57 A9 26 01 09 B1 EB 75 46 6C
[java]
[java] Commit Succeeded
[java]

从上面看来,客户端似乎无法解码响应(这是 AES256 加密的)。如何修复它??

最佳答案

您需要包含 unlimited strength cryptography policy file (链接适用于 Java 6,其他请参阅 java.oracle.com)在您的 Java 安装中。默认情况下,Java 不允许您使用像 AES256 这样的强加密(因为荒谬的美国导出法律将加密视为武器/弹药)。策略文件将解锁更强的加密。

关于java - 在 Java 6 上运行的 JMX 客户端/服务器上支持 Kerberos 身份验证/授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com