- found the problem to be with a line of code to add all the
scopes from the role to a Set of scopes. when the scopes
attribute in the role object is null it logs an exception and
fails to load policies. I added a new method to check the value
of the roles.getScopes() for null and only attempt to add the
scope to the set if it is not null
- I created a separate method to do this in order to avoid an
increase in technical debt as it would have added to the
complexity if I kept it in the same method.
- PATCH 4: Added scopes to the method arguments in order to
avoid overwriting scopes that are added in prevous interations
of the loop.
- PATCH 5: removed redundant scopes assignment per Jorge's
review.
Change-Id: Ifcc8775d3db8ecc722ee6806310a58ecb4e15856
Issue-ID: POLICY-1981
Signed-off-by: Michael Mokry <michael.mokry@att.com>
return policyController != null ? getPolicyController() : new PolicyController();
}
return policyController != null ? getPolicyController() : new PolicyController();
}
+ private Set<String> addAllScopes(Roles userRole, Set<String> scopes) {
+ if (userRole.getScope() != null) {
+ scopes.addAll(Stream.of(userRole.getScope().split(",")).collect(Collectors.toSet()));
+ }
+ return scopes;
+ }
+
@RequestMapping(value = {"/get_AutoPushPoliciesContainerData"}, method = {RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyGroupContainerData(HttpServletRequest request, HttpServletResponse response) {
@RequestMapping(value = {"/get_AutoPushPoliciesContainerData"}, method = {RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyGroupContainerData(HttpServletRequest request, HttpServletResponse response) {
for (Object role : userRoles) {
Roles userRole = (Roles) role;
roles.add(userRole.getRole());
for (Object role : userRoles) {
Roles userRole = (Roles) role;
roles.add(userRole.getRole());
- scopes.addAll(Stream.of(userRole.getScope().split(",")).collect(Collectors.toSet()));
+ addAllScopes(userRole, scopes);
if (roles.contains("super-admin") || roles.contains("super-editor") || roles.contains("super-guest")) {
data = commonClassDao.getData(PolicyVersion.class);
} else {
if (roles.contains("super-admin") || roles.contains("super-editor") || roles.contains("super-guest")) {
data = commonClassDao.getData(PolicyVersion.class);
} else {