diff options
Diffstat (limited to 'tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java')
-rw-r--r-- | tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java b/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java index 11176726e1..33fc4f7e50 100644 --- a/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java +++ b/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java @@ -25,6 +25,9 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServlet; @@ -39,6 +42,7 @@ import org.eclipse.jetty.client.util.BytesContentProvider; import org.eclipse.jetty.client.util.DigestAuthentication; import org.eclipse.jetty.client.util.StringContentProvider; import org.eclipse.jetty.http.HttpMethod; +import org.eclipse.jetty.security.AbstractLoginService; import org.eclipse.jetty.security.ConstraintMapping; import org.eclipse.jetty.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.HashLoginService; @@ -55,6 +59,7 @@ import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.TypeUtil; import org.eclipse.jetty.util.security.Constraint; +import org.eclipse.jetty.util.security.Credential; import org.eclipse.jetty.util.security.Password; import org.junit.AfterClass; import org.junit.Assert; @@ -79,6 +84,44 @@ public class DigestPostTest public volatile static String _received = null; private static Server _server; + public static class TestLoginService extends AbstractLoginService + { + protected Map<String, UserPrincipal> users = new HashMap<>(); + protected Map<String, String[]> roles = new HashMap<>(); + + + public TestLoginService(String name) + { + setName(name); + } + + public void putUser (String username, Credential credential, String[] rolenames) + { + UserPrincipal userPrincipal = new UserPrincipal(username,credential); + users.put(username, userPrincipal); + roles.put(username, rolenames); + } + + /** + * @see org.eclipse.jetty.security.AbstractLoginService#loadRoleInfo(org.eclipse.jetty.security.AbstractLoginService.UserPrincipal) + */ + @Override + protected String[] loadRoleInfo(UserPrincipal user) + { + return roles.get(user.getName()); + } + + /** + * @see org.eclipse.jetty.security.AbstractLoginService#loadUserInfo(java.lang.String) + */ + @Override + protected UserPrincipal loadUserInfo(String username) + { + return users.get(username); + } + } + + @BeforeClass public static void setUpServer() { @@ -91,7 +134,7 @@ public class DigestPostTest context.setContextPath("/test"); context.addServlet(PostServlet.class,"/"); - HashLoginService realm = new HashLoginService("test"); + TestLoginService realm = new TestLoginService("test"); realm.putUser("testuser",new Password("password"),new String[]{"test"}); _server.addBean(realm); |