I'd fix it in one commit. https://bugs.openjdk.org/browse/JDK-8316771 filed.

Thanks,
Max

> On Sep 22, 2023, at 10:35 AM, Osipov, Michael (IN IT IN) 
> <michael.osi...@siemens.com> wrote:
> 
> Nothing at hand, at the moment. I was first waiting for you to confirm the 
> issue. I think two distinct PRs are necessary here with two JBS issues?
> 
> M
> 
> On 2023-09-20 20:06, Wei-Jun Wang wrote:
>> I'll look into it. Thanks!
>> Do you have a patch? :-)
>> --Max
>>> On Aug 9, 2023, at 3:30 AM, Osipov, Michael (SMD IT IN) 
>>> <michael.osi...@siemens.com> wrote:
>>> 
>>> Folks, Max,
>>> 
>>> consider the following code snippet configured with the Krb5LoginModule:
>>>> LoginContext lc = new LoginContext(loginEntryName);
>>>> lc.login();
>>> 
>>> then a LoginException is thrown with the following stacktrace:
>>>> 2023-08-01T00:09:31.601 SCHWERWIEGEND [https-openssl-apr-8444-exec-5417] 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.getPrincipal Exception 
>>>> acquiring directory server connection
>>>>    javax.naming.NamingException: null (29) [Root exception is 
>>>> javax.security.auth.login.LoginException: null (29)]
>>>>        at 
>>>> net.sf.michaelo.dirctxsrc.DirContextSource.getGssApiDirContext(DirContextSource.java:625)
>>>>        at 
>>>> net.sf.michaelo.dirctxsrc.DirContextSource.getDirContext(DirContextSource.java:685)
>>>>        at 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.open(ActiveDirectoryRealm.java:572)
>>>>        at 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.acquire(ActiveDirectoryRealm.java:506)
>>>>        at 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.getPrincipal(ActiveDirectoryRealm.java:432)
>>>>        at 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.getPrincipal(ActiveDirectoryRealm.java:461)
>>>>        at 
>>>> net.sf.michaelo.tomcat.realm.ActiveDirectoryRealm.getPrincipal(ActiveDirectoryRealm.java:426)
>>>>        at 
>>>> org.apache.catalina.realm.RealmBase.authenticate(RealmBase.java:497)
>>>>        at 
>>>> net.sf.michaelo.tomcat.authenticator.SpnegoAuthenticator.doAuthenticate(SpnegoAuthenticator.java:163)
>>>>        at 
>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:564)
>>>>        ...
>>>>        at java.lang.Thread.run(Thread.java:750)
>>>>    Caused by: javax.security.auth.login.LoginException: null (29)
>>>>        at 
>>>> com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:810)
>>>>        at 
>>>> com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)
>>>>        at sun.reflect.GeneratedMethodAccessor10719.invoke(Unknown Source)
>>>>        at 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>        at java.lang.reflect.Method.invoke(Method.java:498)
>>>>        at 
>>>> javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
>>>>        at 
>>>> javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
>>>>        at 
>>>> javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
>>>>        at 
>>>> javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
>>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>>        at 
>>>> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
>>>>        at 
>>>> javax.security.auth.login.LoginContext.login(LoginContext.java:587)
>>>>        at 
>>>> net.sf.michaelo.dirctxsrc.DirContextSource.getGssApiDirContext(DirContextSource.java:574)
>>>>        ... 23 more
>>>>    Caused by: KrbException: null (29)
>>>>        at sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:76)
>>>>        at sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:335)
>>>>        at 
>>>> sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:488)
>>>>        at 
>>>> com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:782)
>>>>        ... 35 more
>>>>    Caused by: KrbException: Identifier doesn't match expected value (906)
>>>>        at sun.security.krb5.internal.KDCRep.init(KDCRep.java:140)
>>>>        at sun.security.krb5.internal.ASRep.init(ASRep.java:64)
>>>>        at sun.security.krb5.internal.ASRep.<init>(ASRep.java:59)
>>>>        at sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:60)
>>>>        ... 38 more
>>> 
>>> I am trying to obtain a TGT to authenticate thorugh SASL GSSAPI to Active 
>>> Directory via LDAP. This happened to me now repeatedly in the last couple 
>>> of days around midnight. Looking up error code 29 says 
>>> KDC_ERR_SVC_UNAVAILABLE, obviously the AD DC server is maintenance mode. 
>>> What bugs me is that KDC_ERR_SVC_UNAVAILABLE(29) is documented in 
>>> Krb5.java, has an error message and KrbException.java does use it, but no 
>>> error message is mapped to the code.
>>> 
>>> Request: Maybe someone (Max?) log an improvement request with JBS to
>>> add missing error codes 26--28, 51 from [1] and
>>>>    public static final int KRB_AP_ERR_NOREALM          = 62;
>>>>    public static final int KRB_AP_ERR_GEN_CRED         = 63;
>>> 
>>> look incorrect. Plus the mapping in errMsgList for those.
>>> 
>>> Note: Tried with OpenJDK 8.
>>> 
>>> Best regards,
>>> 
>>> Michael
>>> 
>>> [1] 
>>> https://urldefense.com/v3/__https://www.rfc-editor.org/rfc/rfc4120*section-7.5.9__;Iw!!ACWV5N9M2RV99hQ!NAnnEyD5OZ3aXFClFAbzuSz344ZIBcwaUSH0iXe_005rJuCa-xP9-BARuknsTOZNP-MFJSjAiIMQm8mI7AyLsisF4Mg$


Reply via email to