From ce3ba5888718ce131265bffd6823a234fdbbc1c2 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Sat, 29 Sep 2012 16:15:55 +1000 Subject: 390163 Implement ServletRegistration.Dynamic.setServletSecurity --- .../jetty/security/ConstraintSecurityHandler.java | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'jetty-security/src/main/java') 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 94f70f565c..5712c1df92 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 @@ -24,7 +24,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -51,7 +50,7 @@ import org.eclipse.jetty.util.security.Constraint; /* ------------------------------------------------------------ */ /** * Handler to enforce SecurityConstraints. This implementation is servlet spec - * 2.4 compliant and precomputes the constraint combinations for runtime + * 3.0 compliant and precomputes the constraint combinations for runtime * efficiency. * */ @@ -191,9 +190,11 @@ public class ConstraintSecurityHandler extends SecurityHandler implements Constr /* ------------------------------------------------------------ */ - /** + /** Take out of the constraint mappings those that match the + * given path. + * * @param pathSpec - * @param constraintMappings + * @param constraintMappings a new list minus the matching constraints * @return */ public static List removeConstraintMappingsForPath(String pathSpec, List constraintMappings) @@ -351,8 +352,6 @@ public class ConstraintSecurityHandler extends SecurityHandler implements Constr */ public void setConstraintMappings(List constraintMappings, Set roles) { - if (isStarted()) - throw new IllegalStateException("Started"); _constraintMappings.clear(); _constraintMappings.addAll(constraintMappings); @@ -371,6 +370,14 @@ public class ConstraintSecurityHandler extends SecurityHandler implements Constr } } setRoles(roles); + + if (isStarted()) + { + for (ConstraintMapping mapping : _constraintMappings) + { + processConstraintMapping(mapping); + } + } } /* ------------------------------------------------------------ */ @@ -383,9 +390,6 @@ public class ConstraintSecurityHandler extends SecurityHandler implements Constr */ public void setRoles(Set roles) { - if (isStarted()) - throw new IllegalStateException("Started"); - _roles.clear(); _roles.addAll(roles); } -- cgit v1.2.3