This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlet-helpers.git
The following commit(s) were added to refs/heads/master by this push:
new 67e26aa SLING-11817 Implement
MockSlingHttpServletRequest#getUserPrincipal (#12)
67e26aa is described below
commit 67e26aa10fc6ce77d197004877375e344d469978
Author: Eric Norman <[email protected]>
AuthorDate: Thu Apr 6 16:07:11 2023 -0700
SLING-11817 Implement MockSlingHttpServletRequest#getUserPrincipal (#12)
---
.../MockSlingHttpServletRequest.java | 24 +++++++++++++++++-----
.../MockSlingHttpServletRequestTest.java | 21 +++++++++++++++++++
2 files changed, 40 insertions(+), 5 deletions(-)
diff --git
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
index 17114a4..5919860 100644
---
a/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
+++
b/src/main/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequest.java
@@ -881,6 +881,25 @@ public class MockSlingHttpServletRequest extends
SlingAdaptable implements Sling
.orElse(null);
}
+ @Override
+ public Principal getUserPrincipal() {
+ Principal principal = 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) {
+ principal = () -> userid;
+ }
+ }
+
+ return principal;
+ }
+
// --- unsupported operations ---
@Override
@@ -893,11 +912,6 @@ public class MockSlingHttpServletRequest extends
SlingAdaptable implements Sling
throw new UnsupportedOperationException();
}
- @Override
- public Principal getUserPrincipal() {
- throw new UnsupportedOperationException();
- }
-
@Override
public boolean isRequestedSessionIdFromCookie() {
throw new UnsupportedOperationException();
diff --git
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
index 8e3c9c8..5e8b3b8 100644
---
a/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
+++
b/src/test/java/org/apache/sling/servlethelpers/MockSlingHttpServletRequestTest.java
@@ -36,6 +36,7 @@ import java.io.BufferedReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.Charset;
+import java.security.Principal;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.LinkedHashMap;
@@ -62,6 +63,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
@@ -569,4 +571,23 @@ public class MockSlingHttpServletRequestTest {
public void testInvalidPart() {
request.addPart(null);
}
+
+ @Test
+ public void testGetUserPrincipal() {
+ assertNull(null, request.getUserPrincipal());
+
+ request.setRemoteUser("admin");
+ Principal userPrincipal = request.getUserPrincipal();
+ assertNotNull(userPrincipal);
+ assertEquals("admin", userPrincipal.getName());
+ }
+ @Test
+ public void testGetUserPrincipalFromResourceResolver() {
+ Mockito.when(resourceResolver.adaptTo(Principal.class))
+ .thenReturn(() -> "rruser");
+ Principal userPrincipal = request.getUserPrincipal();
+ assertNotNull(userPrincipal);
+ assertEquals("rruser", userPrincipal.getName());
+ }
+
}