我正在尝试使用AD凭据对我的应用程序进行身份验证。我在创建krb5.ini文件后使用kinit进行测试。我相信ini文件中的所有领域信息都是正确的,但在使用kinit进行测试时会继续收到以下错误。
Exception: krb_error 0 Cannot find any provider supporting ARCFOUR No error
KrbException: Cannot find any provider supporting ARCFOUR
at
sun.security.krb5.internal.crypto.ArcFourHmacEType.encrypt(ArcFourHm
cEType.java:68)
at
sun.security.krb5.internal.crypto.ArcFourHmacEType.encrypt(ArcFourHm
cEType.java:60)
at sun.security.krb5.EncryptedData.<init>(EncryptedData.java:122)
at sun.security.krb5.KrbAsReq.init(KrbAsReq.java:355)
at sun.security.krb5.KrbAsReq.<init>(KrbAsReq.java:180)
at sun.security.krb5.internal.tools.Kinit.<init>(Kinit.java:253)
at sun.security.krb5.internal.tools.Kinit.main(Kinit.java:107)
Caused by: java.security.NoSuchAlgorithmException: Cannot find any provider
suporting ARCFOUR
at javax.crypto.Cipher.getInstance(DashoA13*..)
at
sun.security.krb5.internal.crypto.dk.ArcFourCrypto.encrypt(ArcFourCrpto.java:279)
答案 0 :(得分:0)
您需要在krb5.ini配置和conf / security / java.security中启用RC4-HMAC
我认为RC4与MD5一起在Oracle JDK(> = 1.8.u060)中因已知的不安全因素而被列入黑名单,但是对于MS Active Directory Kerberos实现,密钥交换是严格要求的。 也许您必须通过从JDK conf / security / java.security的jdk.tls.disabledAlgorithms和jdk.certpath.disabledAlgorithms中删除RC4来重新启用它。