RFR: 8215916: The failure reason of an optional JAAS LoginModule is not logged [v18]
Jayashree Huttanagoudar
duke at openjdk.org
Mon Aug 22 17:15:39 UTC 2022
On Mon, 22 Aug 2022 16:07:49 GMT, Weijun Wang <weijun at openjdk.org> wrote:
> Just to clarify, I might have confused the stack trace of the exception thrown by the test and the newly printed one thrown inside `LoginContext`. I meant the latter, which is captured in `s` and this bug is about its content.
So the patch should look like :
# git diff
diff --git a/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java b/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
index 6ce0c0ae8fa..5a1aa98ec99 100644
--- a/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
+++ b/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
@@ -39,7 +39,7 @@ import java.io.PrintStream;
public class UnixNTPlatform {
public static void main(String[] args) throws Exception {
- System.out.println("Testing cross-platform");
+ System.out.println("Testing cross-platform");
String config = """
hello {
@@ -71,7 +71,9 @@ public class UnixNTPlatform {
byte[] byes = stream.toByteArray();
String s = new String(byes);
if (!s.contains("Failed in attempt to import the underlying")) {
- throw new RuntimeException();
+ //throw new RuntimeException();
+ System.out.printf("-- call stack is -- %n%s%n", s);
+ throw new RuntimeException();
} else {
System.out.printf("-- call stack is -- %n%s%n", s);
}
?
I tried to execute the test case with this change and I don't see anything changed much.
# jtreg/bin/jtreg -jdk:/root/jdk/build.master/linux-x86_64-server-release/images/jdk/ test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
Test results: failed: 1
Report written to /root/jdk/JTreport/html/report.html
Results written to /root/jdk/JTwork
Error: Some tests failed or other problems occurred.
[root at hp-z210-01 jdk]# cat JTwork/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.jtr
#Test Results (version 2)
#Mon Aug 22 12:59:50 EDT 2022
#-----testdescription-----
$file=/root/jdk/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
$root=/root/jdk/test/jdk
keywords=bug8215916 othervm
run=USER_SPECIFIED main/othervm -Djava.security.debug=logincontext UnixNTPlatform\n
source=UnixNTPlatform.java
title=This test case attempts to verify whether call stack trace is printed when JAAS optional login fails when debug is true.
#-----environment-----
#-----testresult-----
description=file:/root/jdk/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
elapsed=159 0:00:00.159
end=Mon Aug 22 12:59:50 EDT 2022
environment=regtest
execStatus=Failed. Execution failed: `main' threw exception: java.lang.RuntimeException
harnessLoaderMode=Classpath Loader
harnessVariety=Full Bundle
hostname=hp-z210-01.ml3.eng.bos.redhat.com
javatestOS=Linux 5.18.13-200.fc36.x86_64 (amd64)
javatestVersion=6.0-ea+b14-2022-02-03
jtregVersion=jtreg 6.2 dev 0
script=com.sun.javatest.regtest.exec.RegressionScript
sections=script_messages build main
start=Mon Aug 22 12:59:50 EDT 2022
test=javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.java
testJDK=/root/jdk/build.master/linux-x86_64-server-release/images/jdk
totalTime=162
user.name=root
work=/root/jdk/JTwork/javax/security/auth/login/LoginContext/OptionalJaas
#section:script_messages
----------messages:(4/263)----------
JDK under test: /root/jdk/build.master/linux-x86_64-server-release/images/jdk
openjdk version "20-internal" 2023-03-21
OpenJDK Runtime Environment (build 20-internal-adhoc.root.jdk)
OpenJDK 64-Bit Server VM (build 20-internal-adhoc.root.jdk, mixed mode, sharing)
#section:build
----------messages:(3/99)----------
command: build UnixNTPlatform
reason: Named class compiled on demand
elapsed time (seconds): 0.001
result: Passed. All files up to date
#section:main
----------messages:(4/228)----------
command: main -Djava.security.debug=logincontext UnixNTPlatform
reason: User specified action: run main/othervm -Djava.security.debug=logincontext UnixNTPlatform
Mode: othervm [/othervm specified]
elapsed time (seconds): 0.111
----------configuration:(0/0)----------
----------System.out:(43/1841)----------
Testing cross-platform
config is :
hello {
com.sun.security.auth.module.UnixLoginModule optional debug=true;
com.sun.security.auth.module.NTLoginModule optional debug=true;
};
[UnixLoginModule]: succeeded importing info:
uid = 0
gid = 0
supp gid = 0
[NTLoginModule] Failed in NT login
[UnixLoginModule]: added UnixPrincipal,
UnixNumericUserPrincipal,
UnixNumericGroupPrincipal(s),
to Subject
[NTLoginModule]: did not add any Principals to Subject because own authentication failed.
Subject:
Principal: UnixPrincipal: root
Principal: UnixNumericUserPrincipal: 0
Principal: UnixNumericGroupPrincipal [Primary Group]: 0
[UnixLoginModule]: logged out Subject
[NTLoginModule] completed logout processing
-- call stack is --
[LoginContext]: Build ServiceProviders cache for ClassLoader: app
[LoginContext]: Discovered ServiceProviders for ClassLoader: app
java.util.ServiceLoader$ProviderImpl at 26235ac3
java.util.ServiceLoader$ProviderImpl at b2ec215d
java.util.ServiceLoader$ProviderImpl at a4b0c752
java.util.ServiceLoader$ProviderImpl at 7231ae26
java.util.ServiceLoader$ProviderImpl at 20ac495b
java.util.ServiceLoader$ProviderImpl at 2f3bbd71
java.util.ServiceLoader$ProviderImpl at 78ff4ab0
[LoginContext]: com.sun.security.auth.module.UnixLoginModule loaded as a service
[LoginContext]: com.sun.security.auth.module.UnixLoginModule login success
[LoginContext]: com.sun.security.auth.module.NTLoginModule loaded as a service
[LoginContext]: com.sun.security.auth.module.NTLoginModule login OPTIONAL failure
[LoginContext]: com.sun.security.auth.module.UnixLoginModule commit success
[LoginContext]: com.sun.security.auth.module.NTLoginModule commit ignored
[LoginContext]: com.sun.security.auth.module.UnixLoginModule logout success
[LoginContext]: com.sun.security.auth.module.NTLoginModule logout success
----------System.err:(11/552)----------
java.lang.RuntimeException
at UnixNTPlatform.main(UnixNTPlatform.java:76)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.base/java.lang.Thread.run(Thread.java:1589)
JavaTest Message: Test threw exception: java.lang.RuntimeException
JavaTest Message: shutting down test
STATUS:Failed.`main' threw exception: java.lang.RuntimeException
----------rerun:(23/1650)*----------
cd /root/jdk/JTwork/scratch && \\
HOME=/root \\
LANG=en_US.UTF-8 \\
PATH=/bin:/usr/bin:/usr/sbin \\
XMODIFIERS=@im=ibus \\
CLASSPATH=/root/jdk/JTwork/classes/javax/security/auth/login/LoginContext/OptionalJaas/UnixNTPlatform.d:/root/jdk/test/jdk/javax/security/auth/login/LoginContext/OptionalJaas:/root/jdk/jtreg/lib/javatest.jar:/root/jdk/jtreg/lib/jtreg.jar \\
-------------
PR: https://git.openjdk.org/jdk/pull/9159
More information about the security-dev
mailing list