diff --git a/jetty-security/src/main/java/org/eclipse/jetty/security/ConstraintSecurityHandler.java b/jetty-security/src/main/java/org/eclipse/jetty/security/ConstraintSecurityHandler.java index a82984f798f8..17a911454a9a 100644 --- a/jetty-security/src/main/java/org/eclipse/jetty/security/ConstraintSecurityHandler.java +++ b/jetty-security/src/main/java/org/eclipse/jetty/security/ConstraintSecurityHandler.java @@ -262,12 +262,19 @@ public static List createConstraintsWithMappingsForPath(Strin } /** - * @return Returns the constraintMappings. + * @return only the durable mappings if we are not yet started, otherwise + * return both the durables and transients. */ @Override public List getConstraintMappings() { - return _constraintMappings; + //if we've started, then we've processed both the durable and + //transient constraint mappings + if (isRunning()) + return _constraintMappings; + else + //otherwise, we only have durables + return _durableConstraintMappings; } @Override diff --git a/jetty-security/src/test/java/org/eclipse/jetty/security/ConstraintTest.java b/jetty-security/src/test/java/org/eclipse/jetty/security/ConstraintTest.java index af91c6a0ab80..439ce9b8be38 100644 --- a/jetty-security/src/test/java/org/eclipse/jetty/security/ConstraintTest.java +++ b/jetty-security/src/test/java/org/eclipse/jetty/security/ConstraintTest.java @@ -214,9 +214,6 @@ private List getConstraintMappings() @Test public void testConstraints() throws Exception { - //constraint mappings are not available until the server is started. - _server.start(); - List mappings = new ArrayList<>(_security.getConstraintMappings()); assertTrue(mappings.get(0).getConstraint().isForbidden()); @@ -256,10 +253,13 @@ public void testDurableConstraints() throws Exception _server.stop(); + //After a stop, just the durable mappings are left mappings = _security.getConstraintMappings(); - assertThat("after restart", 0, Matchers.equalTo(mappings.size())); + assertThat("after stop", getConstraintMappings().size(), Matchers.equalTo(mappings.size())); _server.start(); + + //Verify the constraints are just the durables mappings = _security.getConstraintMappings(); assertThat("after restart", getConstraintMappings().size(), Matchers.equalTo(mappings.size())); @@ -278,6 +278,7 @@ public void testDurableConstraints() throws Exception _server.stop(); _server.start(); + //After a stop, only the durable mappings remain mappings = _security.getConstraintMappings(); assertThat("after addition", getConstraintMappings().size(), Matchers.equalTo(mappings.size())); }