SLING-11817 getUserPrincipal() should return null for anonymous requests (#13)

diff --git a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
index 5919860..e9f2e23 100644
--- a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
+++ b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
@@ -884,15 +884,16 @@
     @Override
     public Principal getUserPrincipal() {
         Principal principal = null;
-        ResourceResolver rr = getResourceResolver();
-        if (rr != null) {
-            principal = rr.adaptTo(Principal.class);
-        }
+        // always return null for anonymous user
+        final String userid = getRemoteUser();
+        if (userid != null) {
+            ResourceResolver rr = getResourceResolver();
+            if (rr != null) {
+                principal = rr.adaptTo(Principal.class);
+            }
 
-        if (principal == null) {
-            //fallback to the userid
-            final String userid = getRemoteUser();
-            if (userid != null) {
+            if (principal == null) {
+                //fallback to the userid
                 principal = () -> userid;
             }
         }
diff --git a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
index 5e8b3b8..5916eb9 100644
--- a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
+++ b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
@@ -585,6 +585,11 @@
     public void testGetUserPrincipalFromResourceResolver() {
         Mockito.when(resourceResolver.adaptTo(Principal.class))
             .thenReturn(() -> "rruser");
+        // always returns null for anonymous user
+        assertNull(request.getUserPrincipal());
+
+        // make remote user not anonymous
+        request.setRemoteUser("remoteuser");
         Principal userPrincipal = request.getUserPrincipal();
         assertNotNull(userPrincipal);
         assertEquals("rruser", userPrincipal.getName());