You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cr...@apache.org on 2021/06/29 22:27:53 UTC

[sling-org-apache-sling-auth-saml2] branch master updated: added tests for Saml2UserMgtServiceImpl NPE scenarios

This is an automated email from the ASF dual-hosted git repository.

cris pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-auth-saml2.git


The following commit(s) were added to refs/heads/master by this push:
     new e9e7be8  added tests for Saml2UserMgtServiceImpl NPE scenarios
e9e7be8 is described below

commit e9e7be8ba59775bdaef57b5a5c2075e3ac93f496
Author: Cris Rockwell <cm...@umich.edu>
AuthorDate: Tue Jun 29 18:27:34 2021 -0400

    added tests for Saml2UserMgtServiceImpl NPE scenarios
---
 .../sling/auth/saml2/impl/Saml2UserMgtServiceImpl.java      |  8 ++++++++
 .../auth/saml2/impl/AuthenticationHandlerSAML2ImplTest.java | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/src/main/java/org/apache/sling/auth/saml2/impl/Saml2UserMgtServiceImpl.java b/src/main/java/org/apache/sling/auth/saml2/impl/Saml2UserMgtServiceImpl.java
index 0a7ca75..e1abc18 100644
--- a/src/main/java/org/apache/sling/auth/saml2/impl/Saml2UserMgtServiceImpl.java
+++ b/src/main/java/org/apache/sling/auth/saml2/impl/Saml2UserMgtServiceImpl.java
@@ -58,6 +58,10 @@ public class Saml2UserMgtServiceImpl implements Saml2UserMgtService {
             Map<String, Object> param = new HashMap<>();
             param.put(ResourceResolverFactory.SUBSERVICE, SERVICE_NAME);
             this.resourceResolver = resolverFactory.getServiceResourceResolver(param);
+            if (Objects.isNull(this.getResourceResolver())){
+                logger.error("Could not setup Saml2UserMgtService. Problem with Service User.");
+                return false;
+            }
             logger.info(this.resourceResolver.getUserID());
             session = this.resourceResolver.adaptTo(Session.class);
             JackrabbitSession jrSession = (JackrabbitSession) session;
@@ -77,6 +81,10 @@ public class Saml2UserMgtServiceImpl implements Saml2UserMgtService {
         return false;
     }
 
+    ResourceResolver getResourceResolver(){
+        return this.resourceResolver;
+    }
+
     @Override
     public void cleanUp() {
         resourceResolver.close();
diff --git a/src/test/java/org/apache/sling/auth/saml2/impl/AuthenticationHandlerSAML2ImplTest.java b/src/test/java/org/apache/sling/auth/saml2/impl/AuthenticationHandlerSAML2ImplTest.java
index 0afc9d6..895a242 100644
--- a/src/test/java/org/apache/sling/auth/saml2/impl/AuthenticationHandlerSAML2ImplTest.java
+++ b/src/test/java/org/apache/sling/auth/saml2/impl/AuthenticationHandlerSAML2ImplTest.java
@@ -22,6 +22,7 @@ package org.apache.sling.auth.saml2.impl;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.auth.core.spi.AuthenticationInfo;
 import org.hamcrest.core.StringStartsWith;
 import org.jmock.Expectations;
@@ -77,6 +78,18 @@ public class AuthenticationHandlerSAML2ImplTest {
     }
 
     @Test
+    public void SamlUserMgtServiceImplNPETest() throws  Exception {
+        Saml2UserMgtServiceImpl saml2UserMgtService = Mockito.mock(Saml2UserMgtServiceImpl.class);
+        when(saml2UserMgtService.getResourceResolver()).thenReturn(null);
+        assertFalse(saml2UserMgtService.setUp());
+
+        Saml2UserMgtServiceImpl saml2UserMgtService2 = Mockito.mock(Saml2UserMgtServiceImpl.class);
+        ResourceResolver resourceResolver = Mockito.mock(ResourceResolver.class);
+        when(saml2UserMgtService2.getResourceResolver()).thenReturn(resourceResolver);
+        assertFalse(saml2UserMgtService.setUp());
+    }
+
+    @Test
     public void invalidTokensTest() throws Exception {
         final String [] invalid = {
                 "1@21@3",