Skip to content

Commit 39c00dc

Browse files
Nico Verwerline-o
authored andcommitted
[bugfix] guard against NPE in securitymanager
fixes #4670
1 parent 1029a51 commit 39c00dc

File tree

1 file changed

+9
-5
lines changed
  • exist-core/src/main/java/org/exist/xquery/functions/securitymanager

1 file changed

+9
-5
lines changed

exist-core/src/main/java/org/exist/xquery/functions/securitymanager/IdFunction.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,17 @@ private org.exist.dom.memtree.DocumentImpl functionId() {
7777

7878
builder.startElement(new QName("id", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
7979

80-
builder.startElement(new QName("real", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
81-
subjectToXml(builder, context.getRealUser());
82-
builder.endElement();
80+
final Subject realUser = context.getRealUser();
81+
if (realUser != null) {
82+
builder.startElement(new QName("real", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
83+
subjectToXml(builder, realUser);
84+
builder.endElement();
85+
}
8386

84-
if (!sameUserWithSameGroups(context.getRealUser(), context.getEffectiveUser())) {
87+
final Subject effectiveUser = context.getEffectiveUser();
88+
if (effectiveUser != null && (realUser == null || !sameUserWithSameGroups(realUser, effectiveUser))) {
8589
builder.startElement(new QName("effective", SecurityManagerModule.NAMESPACE_URI, SecurityManagerModule.PREFIX), null);
86-
subjectToXml(builder, context.getEffectiveUser());
90+
subjectToXml(builder, effectiveUser);
8791
builder.endElement();
8892
}
8993

0 commit comments

Comments
 (0)