diff --git a/build-spring-webflow/resources/changelog.txt b/build-spring-webflow/resources/changelog.txt index 84a480e6..46af0f0c 100644 --- a/build-spring-webflow/resources/changelog.txt +++ b/build-spring-webflow/resources/changelog.txt @@ -2,10 +2,19 @@ SPRING WEB FLOW CHANGELOG ========================= http://www.springframework.org/webflow +Changes in version 2.1.0 () +------------------------------------- +* Upgraded to Spring Framework 3.0.2.RELEASE, Portlet API 2.0.1, and Tiles 2.1.2 (SWF-1226) +* Upgraded to Spring Security 3.0.2.RELEASE (SWF-1182) +* Added support for cascaded attributes in AjaxTilesView (SWF-1053) + Changes in version 2.0.9 () ------------------------------------- * ViewState now ignores case where 'model' expression fails to evaluate (SWF-1176) - +* Added calls to lock/unlock the coversation when a flow execution is launched (SWF-1213) +* Added serialization methods to FlowFacesMessageAdapter as workaround for issue in MyFaces (SWF-1187) +* Prevented the wrapping of a converter with ObjectToCollection in cases where the targetClass of the converter is already a collection (SWF-1229) +* Upgraded to Dojo 1.2.4 containing security fixes. Changes in version 2.0.8 (2009.08.06) ------------------------------------- @@ -683,4 +692,4 @@ Package org.springframework.webflow.samples Package reference-manual * Improved readability of reference manual in several sections (SWF-349). -* Added documentation on flow execution exception handling options (SWF-357). \ No newline at end of file +* Added documentation on flow execution exception handling options (SWF-357). diff --git a/spring-webflow-samples/booking-faces/ivy.xml b/spring-webflow-samples/booking-faces/ivy.xml index 9063c6ee..b6288d83 100755 --- a/spring-webflow-samples/booking-faces/ivy.xml +++ b/spring-webflow-samples/booking-faces/ivy.xml @@ -42,7 +42,9 @@ - + + + diff --git a/spring-webflow-samples/booking-faces/pom.xml b/spring-webflow-samples/booking-faces/pom.xml index b750f308..2570bf38 100644 --- a/spring-webflow-samples/booking-faces/pom.xml +++ b/spring-webflow-samples/booking-faces/pom.xml @@ -104,8 +104,18 @@ org.springframework.security - org.springframework.security - 2.0.4.A + org.springframework.security.core + 3.0.2.RELEASE + + + org.springframework.security + org.springframework.security.config + 3.0.2.RELEASE + + + org.springframework.security + org.springframework.security.web + 3.0.2.RELEASE org.springframework.webflow diff --git a/spring-webflow-samples/booking-faces/src/main/webapp/WEB-INF/config/security-config.xml b/spring-webflow-samples/booking-faces/src/main/webapp/WEB-INF/config/security-config.xml index b6680f84..eae5ca29 100644 --- a/spring-webflow-samples/booking-faces/src/main/webapp/WEB-INF/config/security-config.xml +++ b/spring-webflow-samples/booking-faces/src/main/webapp/WEB-INF/config/security-config.xml @@ -6,11 +6,12 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security-2.0.2.xsd"> + http://www.springframework.org/schema/security/spring-security-3.0.xsd"> - + @@ -23,14 +24,16 @@ jeremy/atlanta scott/rochester --> - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-webflow-samples/booking-mvc/ivy.xml b/spring-webflow-samples/booking-mvc/ivy.xml index 2e2c0c03..51f3c8ea 100755 --- a/spring-webflow-samples/booking-mvc/ivy.xml +++ b/spring-webflow-samples/booking-mvc/ivy.xml @@ -47,8 +47,9 @@ - - + + + diff --git a/spring-webflow-samples/booking-mvc/pom.xml b/spring-webflow-samples/booking-mvc/pom.xml index 522bd9b9..2a63856d 100644 --- a/spring-webflow-samples/booking-mvc/pom.xml +++ b/spring-webflow-samples/booking-mvc/pom.xml @@ -129,13 +129,18 @@ org.springframework.security - org.springframework.security - 2.0.4.A + org.springframework.security.core + 3.0.2.RELEASE + + + org.springframework.security + org.springframework.security.config + 3.0.2.RELEASE org.springframework.security org.springframework.security.taglibs - 2.0.4.A + 3.0.2.RELEASE org.springframework.webflow diff --git a/spring-webflow-samples/booking-mvc/src/main/webapp/WEB-INF/config/security-config.xml b/spring-webflow-samples/booking-mvc/src/main/webapp/WEB-INF/config/security-config.xml index e6b8c4f0..b362bba5 100644 --- a/spring-webflow-samples/booking-mvc/src/main/webapp/WEB-INF/config/security-config.xml +++ b/spring-webflow-samples/booking-mvc/src/main/webapp/WEB-INF/config/security-config.xml @@ -6,11 +6,12 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security-2.0.xsd"> + http://www.springframework.org/schema/security/spring-security-3.0.xsd"> - + @@ -23,14 +24,16 @@ jeremy/atlanta scott/rochester --> - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/spring-webflow/.classpath b/spring-webflow/.classpath index 452a171d..75ba73a4 100644 --- a/spring-webflow/.classpath +++ b/spring-webflow/.classpath @@ -45,6 +45,6 @@ - + diff --git a/spring-webflow/ivy.xml b/spring-webflow/ivy.xml index 46ca2a32..12a959fa 100644 --- a/spring-webflow/ivy.xml +++ b/spring-webflow/ivy.xml @@ -38,7 +38,7 @@ - + diff --git a/spring-webflow/pom.xml b/spring-webflow/pom.xml index e8dc7119..4c8954df 100644 --- a/spring-webflow/pom.xml +++ b/spring-webflow/pom.xml @@ -116,7 +116,7 @@ org.springframework.security spring-security-core - 2.0.4 + 3.0.2.RELEASE true diff --git a/spring-webflow/src/main/java/org/springframework/webflow/security/SecurityFlowExecutionListener.java b/spring-webflow/src/main/java/org/springframework/webflow/security/SecurityFlowExecutionListener.java index 536b8569..9bc220fa 100644 --- a/spring-webflow/src/main/java/org/springframework/webflow/security/SecurityFlowExecutionListener.java +++ b/spring-webflow/src/main/java/org/springframework/webflow/security/SecurityFlowExecutionListener.java @@ -16,18 +16,18 @@ package org.springframework.webflow.security; import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; -import org.springframework.security.AccessDecisionManager; -import org.springframework.security.Authentication; -import org.springframework.security.ConfigAttributeDefinition; -import org.springframework.security.SecurityConfig; -import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.vote.AbstractAccessDecisionManager; -import org.springframework.security.vote.AffirmativeBased; -import org.springframework.security.vote.RoleVoter; -import org.springframework.security.vote.UnanimousBased; +import org.springframework.security.access.AccessDecisionManager; +import org.springframework.security.access.SecurityConfig; +import org.springframework.security.access.vote.AbstractAccessDecisionManager; +import org.springframework.security.access.vote.AffirmativeBased; +import org.springframework.security.access.vote.RoleVoter; +import org.springframework.security.access.vote.UnanimousBased; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.webflow.definition.FlowDefinition; import org.springframework.webflow.definition.StateDefinition; import org.springframework.webflow.definition.TransitionDefinition; @@ -90,9 +90,9 @@ public class SecurityFlowExecutionListener extends FlowExecutionListenerAdapter */ protected void decide(SecurityRule rule, Object object) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - ConfigAttributeDefinition config = new ConfigAttributeDefinition(getConfigAttributes(rule)); + Collection configAttributes = getConfigAttributes(rule); if (accessDecisionManager != null) { - accessDecisionManager.decide(authentication, object, config); + accessDecisionManager.decide(authentication, object, configAttributes); } else { AbstractAccessDecisionManager abstractAccessDecisionManager; List voters = new ArrayList(); @@ -105,7 +105,7 @@ public class SecurityFlowExecutionListener extends FlowExecutionListenerAdapter throw new IllegalStateException("Unknown SecurityRule match type: " + rule.getComparisonType()); } abstractAccessDecisionManager.setDecisionVoters(voters); - abstractAccessDecisionManager.decide(authentication, object, config); + abstractAccessDecisionManager.decide(authentication, object, configAttributes); } } @@ -114,7 +114,7 @@ public class SecurityFlowExecutionListener extends FlowExecutionListenerAdapter * @param rule the rule to convert * @return list of ConfigAttributes for Spring Security */ - protected List getConfigAttributes(SecurityRule rule) { + protected Collection getConfigAttributes(SecurityRule rule) { List configAttributes = new ArrayList(); Iterator attributeIt = rule.getAttributes().iterator(); while (attributeIt.hasNext()) { diff --git a/spring-webflow/src/test/java/org/springframework/webflow/security/SecurityFlowExecutionListenerTests.java b/spring-webflow/src/test/java/org/springframework/webflow/security/SecurityFlowExecutionListenerTests.java index 77b1d514..1a41df97 100644 --- a/spring-webflow/src/test/java/org/springframework/webflow/security/SecurityFlowExecutionListenerTests.java +++ b/spring-webflow/src/test/java/org/springframework/webflow/security/SecurityFlowExecutionListenerTests.java @@ -5,14 +5,14 @@ import java.util.HashSet; import junit.framework.TestCase; -import org.springframework.security.AccessDeniedException; -import org.springframework.security.Authentication; -import org.springframework.security.GrantedAuthority; -import org.springframework.security.GrantedAuthorityImpl; -import org.springframework.security.context.SecurityContext; -import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.context.SecurityContextImpl; -import org.springframework.security.providers.UsernamePasswordAuthenticationToken; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.GrantedAuthorityImpl; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.context.SecurityContextImpl; import org.springframework.webflow.core.collection.LocalAttributeMap; import org.springframework.webflow.definition.FlowDefinition; import org.springframework.webflow.engine.Flow; diff --git a/spring-webflow/template.mf b/spring-webflow/template.mf index af656e4f..47032375 100644 --- a/spring-webflow/template.mf +++ b/spring-webflow/template.mf @@ -9,7 +9,7 @@ Import-Template: org.springframework.orm.*;version="[3.0.2.RELEASE, 3.1.0)";resolution:=optional, org.springframework.transaction.*;version="[3.0.2.RELEASE, 3.1.0)";resolution:=optional, org.springframework.web.portlet.*;version="[3.0.2.RELEASE, 3.1.0)";resolution:=optional, - org.springframework.security.*;version="[2.0.0, 3.0.0)";resolution:=optional, + org.springframework.security.*;version="[3.0.0, 4.0.0)";resolution:=optional, org.apache.commons.logging;version="[1.1.1, 2.0.0)", javax.servlet;version="[2.4.0, 3.0.0)", javax.servlet.http;version="[2.4.0, 3.0.0)",