diff --git a/core/core.gradle b/core/core.gradle
index b41465facd..0812d22d00 100644
--- a/core/core.gradle
+++ b/core/core.gradle
@@ -9,7 +9,6 @@ dependencies {
"org.springframework:spring-expression:$springVersion",
"org.springframework:spring-jdbc:$springVersion",
"org.springframework:spring-tx:$springVersion",
- "org.springframework:spring-web:$springVersion",
"org.aspectj:aspectjrt:$aspectjVersion",
'javax.annotation:jsr250-api:1.0'
diff --git a/core/template.mf b/core/template.mf
index aeb2bd5822..e6421d4ca1 100644
--- a/core/template.mf
+++ b/core/template.mf
@@ -17,7 +17,6 @@ Import-Template:
org.springframework.context.*;version="${springRange}",
org.springframework.core.*;version="${springRange}",
org.springframework.expression.*;version="${springRange}";resolution:=optional,
- org.springframework.remoting.*;version="${springRange}";resolution:=optional,
org.springframework.dao.*;version="${springRange}";resolution:=optional,
org.springframework.jdbc.*;version="${springRange}";resolution:=optional,
org.springframework.transaction.*;version="${springRange}";resolution:=optional,
diff --git a/docs/manual/src/docbook/appendix-dependencies.xml b/docs/manual/src/docbook/appendix-dependencies.xml
index f532aee84c..63b53cf008 100644
--- a/docs/manual/src/docbook/appendix-dependencies.xml
+++ b/docs/manual/src/docbook/appendix-dependencies.xml
@@ -92,6 +92,34 @@
+
+ spring-security-remoting
+ This module is typically required in web applications which use the Servlet API.
+
+ Remoting Dependencies
+
+
+
+
+
+
+ Dependency
+ Version
+ Description
+
+
+
+
+ spring-security-core
+
+
+
+
+
+
+
+
+
spring-security-web
This module is typically required in web applications which use the Servlet API.
diff --git a/docs/manual/src/docbook/introduction.xml b/docs/manual/src/docbook/introduction.xml
index 892373a352..ef8d177a2d 100644
--- a/docs/manual/src/docbook/introduction.xml
+++ b/docs/manual/src/docbook/introduction.xml
@@ -239,11 +239,14 @@
org.springframework.security.provisioning
-
- org.springframework.security.remoting
-
+
+ Remoting - spring-security-remoting.jar
+ Provides intergration with Spring Remoting. You don't need this unless you are
+ writing a remote client which uses Spring Remoting. The main package is
+ org.springframework.security.remoting.
+
Web - spring-security-web.jar
Contains filters and related web-security infrastructure code. Anything with a
diff --git a/remoting/remoting.gradle b/remoting/remoting.gradle
new file mode 100644
index 0000000000..1cbf7c730e
--- /dev/null
+++ b/remoting/remoting.gradle
@@ -0,0 +1,11 @@
+// Remoting module build file
+
+dependencies {
+ compile project(':spring-security-core'),
+ 'aopalliance:aopalliance:1.0',
+ "org.springframework:spring-beans:$springVersion",
+ "org.springframework:spring-context:$springVersion",
+ "org.springframework:spring-web:$springVersion"
+
+ testCompile project(':spring-security-core').sourceSets.test.classes
+}
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/DnsEntryNotFoundException.java b/remoting/src/main/java/org/springframework/security/remoting/dns/DnsEntryNotFoundException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/DnsEntryNotFoundException.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/DnsEntryNotFoundException.java
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/DnsLookupException.java b/remoting/src/main/java/org/springframework/security/remoting/dns/DnsLookupException.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/DnsLookupException.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/DnsLookupException.java
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/DnsResolver.java b/remoting/src/main/java/org/springframework/security/remoting/dns/DnsResolver.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/DnsResolver.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/DnsResolver.java
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/InitialContextFactory.java b/remoting/src/main/java/org/springframework/security/remoting/dns/InitialContextFactory.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/InitialContextFactory.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/InitialContextFactory.java
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java b/remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/JndiDnsResolver.java
diff --git a/core/src/main/java/org/springframework/security/remoting/dns/package-info.java b/remoting/src/main/java/org/springframework/security/remoting/dns/package-info.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/dns/package-info.java
rename to remoting/src/main/java/org/springframework/security/remoting/dns/package-info.java
diff --git a/core/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java b/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java
rename to remoting/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java
diff --git a/core/src/main/java/org/springframework/security/remoting/httpinvoker/package-info.java b/remoting/src/main/java/org/springframework/security/remoting/httpinvoker/package-info.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/httpinvoker/package-info.java
rename to remoting/src/main/java/org/springframework/security/remoting/httpinvoker/package-info.java
diff --git a/core/src/main/java/org/springframework/security/remoting/package-info.java b/remoting/src/main/java/org/springframework/security/remoting/package-info.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/package-info.java
rename to remoting/src/main/java/org/springframework/security/remoting/package-info.java
diff --git a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
rename to remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
diff --git a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java b/remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
rename to remoting/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
diff --git a/core/src/main/java/org/springframework/security/remoting/rmi/package-info.java b/remoting/src/main/java/org/springframework/security/remoting/rmi/package-info.java
similarity index 100%
rename from core/src/main/java/org/springframework/security/remoting/rmi/package-info.java
rename to remoting/src/main/java/org/springframework/security/remoting/rmi/package-info.java
diff --git a/core/src/test/java/org/springframework/security/remoting/dns/JndiDnsResolverTest.java b/remoting/src/test/java/org/springframework/security/remoting/dns/JndiDnsResolverTest.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/remoting/dns/JndiDnsResolverTest.java
rename to remoting/src/test/java/org/springframework/security/remoting/dns/JndiDnsResolverTest.java
diff --git a/core/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java b/remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java
rename to remoting/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java
diff --git a/core/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java b/remoting/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java
similarity index 100%
rename from core/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java
rename to remoting/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java
diff --git a/remoting/template.mf b/remoting/template.mf
new file mode 100644
index 0000000000..d31c801405
--- /dev/null
+++ b/remoting/template.mf
@@ -0,0 +1,19 @@
+Implementation-Title: org.springframework.security.remoting
+Implementation-Version: ${version}
+Bundle-SymbolicName: org.springframework.security.remoting
+Bundle-Name: Spring Security Remoting
+Bundle-Vendor: SpringSource
+Bundle-Version: ${version}
+Bundle-ManifestVersion: 2
+Excluded-Imports:
+ javax.naming.*
+Ignored-Existing-Headers:
+ Import-Package,
+ Export-Package
+Import-Template:
+ org.aopalliance.*;version="${aopAllianceRange}",
+ org.apache.commons.logging.*;version="${cloggingRange}",
+ org.springframework.security.core.*;version="${secRange}",
+ org.springframework.security.crypto.*;version="${secRange}",
+ org.springframework.core.*;version="${springRange}",
+ org.springframework.remoting.*;version="${springRange}"
diff --git a/settings.gradle b/settings.gradle
index 21e47b903f..4568ac249e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,5 +1,6 @@
def String[] modules = [
'core',
+ 'remoting',
'web',
'ldap',
'acl',