Skip to content

Commit 5357779

Browse files
authored
avoid NPE by checking the attribute first (#4311)
fixes #4310
1 parent c454686 commit 5357779

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

plugins/src/main/java/opengrok/auth/plugin/LdapAttrPlugin.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818
*/
1919

2020
/*
21-
* Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
21+
* Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
2222
*/
2323
package opengrok.auth.plugin;
2424

2525
import java.io.IOException;
2626
import java.nio.file.Files;
2727
import java.nio.file.Paths;
2828
import java.util.Map;
29+
import java.util.Objects;
2930
import java.util.Set;
3031
import java.util.TreeSet;
3132
import java.util.logging.Level;
@@ -43,10 +44,10 @@
4344

4445
/**
4546
* Authorization plug-in to check user's LDAP attribute against whitelist.
46-
*
47+
* <p>
4748
* This plugin heavily relies on the presence of the {@code LdapUserPlugin} in the stack above it,
4849
* since it is using the Distinguished Name of the {@code LdapUser} to perform the LDAP lookup.
49-
*
50+
* </p>
5051
* @author Krystof Tulinger
5152
*/
5253
public class LdapAttrPlugin extends AbstractLdapPlugin {
@@ -190,11 +191,11 @@ private void updateSession(HttpServletRequest req, boolean allowed) {
190191

191192
@Override
192193
public boolean checkEntity(HttpServletRequest request, Project project) {
193-
return ((Boolean) request.getSession().getAttribute(sessionAllowed));
194+
return ((Boolean) Objects.requireNonNullElse(request.getSession().getAttribute(sessionAllowed), false));
194195
}
195196

196197
@Override
197198
public boolean checkEntity(HttpServletRequest request, Group group) {
198-
return ((Boolean) request.getSession().getAttribute(sessionAllowed));
199+
return ((Boolean) Objects.requireNonNullElse(request.getSession().getAttribute(sessionAllowed), false));
199200
}
200201
}

plugins/src/main/java/opengrok/auth/plugin/LdapFilterPlugin.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
*/
1919

2020
/*
21-
* Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
21+
* Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved.
2222
*/
2323
package opengrok.auth.plugin;
2424

2525
import java.util.Map;
2626
import java.util.Map.Entry;
27+
import java.util.Objects;
2728
import java.util.Set;
2829
import java.util.TreeMap;
2930
import java.util.logging.Level;
@@ -196,11 +197,11 @@ protected void updateSession(HttpServletRequest req, boolean allowed) {
196197

197198
@Override
198199
public boolean checkEntity(HttpServletRequest request, Project project) {
199-
return ((Boolean) request.getSession().getAttribute(sessionAllowed));
200+
return ((Boolean) Objects.requireNonNullElse(request.getSession().getAttribute(sessionAllowed), false));
200201
}
201202

202203
@Override
203204
public boolean checkEntity(HttpServletRequest request, Group group) {
204-
return ((Boolean) request.getSession().getAttribute(sessionAllowed));
205+
return ((Boolean) Objects.requireNonNullElse(request.getSession().getAttribute(sessionAllowed), false));
205206
}
206207
}

0 commit comments

Comments
 (0)