已开启
JDK Kerberos认证测试时开启Debug模式无法输出完整调试信息 #27
njnu_seafish创建于 6月11日
6月11日 添加了label:sig/Compiler
openeuler-ci-bot
6月11日 评论:
6月11日 评论:
Welcome To openEuler Community
Hey @njnu_seafish , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.
Contact Guide
If you have any questions, please contact the SIG: Compiler ,
and any of the maintainers: @SegFault, @alexanderbill, @cf-zhao, @chenzheng1030, @eastb233, @kuenking111_admin, @li-yancheng, @wangqiang95, @wd-gitcode ,
and any of the committers: @DXwangg, @dongxfeng, @douyiwang, @jiangfeilong1003, @xiezhaokun2013 .


6月11日 关联了pull request:[Fix-27][Kerberos]Add DEBUG switch and constant
6月12日 修改了issue 的描述
我在对bishengjdk-21中kerberos认证进行国密算法改造适配时发现,开启Debug模式无法输出完整调试信息。
验证过程如下:
1,jaas.conf配置文件
KerberosTest { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/etc/security/keytabs/dolphinscheduler.keytab" principal="dolphinscheduler@xxxxx" storeKey=true doNotPrompt=true debug=true; };2,KerberosTest.java测试代码
`import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosTicket;
import javax.security.auth.login.LoginContext;
import org.ietf.jgss.GSSCredential;
import java.util.Set;
public class KerberosTest { tickets = subject.getPrivateCredentials(KerberosTicket.class); creds = subject.getPublicCredentials(GSSCredential.class);
public static void main(String[] args) throws Exception {
// 1. Kerberos 基础配置,开启了debug模式
System.setProperty("java.security.krb5.conf", "/etc/krb5.conf");
System.setProperty("sun.security.krb5.debug", "true");
System.setProperty("java.security.auth.login.config", "/root/bishengjdk/jaas.conf");
// 2. 登录
LoginContext lc = new LoginContext("KerberosTest");
lc.login();
System.out.println("Kerberos authentication successful");
// 3. 获取认证信息
Subject subject = lc.getSubject();
System.out.println("Authenticated Subject: " + subject);
// 4. 打印票据详情
Set
tickets.forEach(ticket -> {
System.out.println("
[Ticket Details]");
System.out.println(" Client: " + ticket.getClient());
System.out.println(" Server: " + ticket.getServer());
System.out.println(" Valid Until: " + ticket.getEndTime());
});
// 5. 检查 GSSCredential(可选)
Set
System.out.println("
GSSCredentials Available: " + !creds.isEmpty());
}
}`
3,编译之后运行测试代码,发现src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/dk包有些类运行时的关键细节信息无法输出
4,我修改了少量开关代码以便debug模式能够生效,添加Kerberos认证时输出完整的调试信息,方便Kerberos协议理解和改造。