diff --git a/manifests/proxy/crossdomain.pp b/manifests/proxy/crossdomain.pp
new file mode 100644
index 00000000..d01d99fc
--- /dev/null
+++ b/manifests/proxy/crossdomain.pp
@@ -0,0 +1,25 @@
+#
+# Configure swift crossdomain.
+#
+# == Examples
+#
+# include swift::proxy::crossdomain
+#
+# == Parameters
+#
+# [*cross_domain_policy*]
+# cross_domain_policy value according to http://docs.openstack.org/developer/swift/crossdomain.html
+# default:
+#
+
+class swift::proxy::crossdomain (
+ $cross_domain_policy = '',
+) {
+
+ concat::fragment { 'swift_crossdomain':
+ target => '/etc/swift/proxy-server.conf',
+ content => template('swift/proxy/crossdomain.conf.erb'),
+ order => '35',
+ }
+
+}
diff --git a/spec/classes/swift_proxy_crossdomain_spec.rb b/spec/classes/swift_proxy_crossdomain_spec.rb
new file mode 100644
index 00000000..155765c3
--- /dev/null
+++ b/spec/classes/swift_proxy_crossdomain_spec.rb
@@ -0,0 +1,51 @@
+require 'spec_helper'
+
+describe 'swift::proxy::crossdomain' do
+
+ let :facts do
+ {
+ :concat_basedir => '/var/lib/puppet/concat'
+ }
+ end
+
+ let :pre_condition do
+ 'class { "concat::setup": }
+ concat { "/etc/swift/proxy-server.conf": }'
+ end
+
+ let :fragment_file do
+ "/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_crossdomain"
+ end
+
+ describe "when using default parameters" do
+ it 'should build the fragment with correct parameters' do
+ verify_contents(subject, fragment_file,
+ [
+ '[filter:crossdomain]',
+ 'use = egg:swift#crossdomain',
+ 'cross_domain_policy = ',
+ ]
+ )
+ end
+ end
+
+ describe "when overriding default parameters" do
+ let :params do
+ {
+ :cross_domain_policy => '
+',
+ }
+ end
+ it 'should build the fragment with correct parameters' do
+ verify_contents(subject, fragment_file,
+ [
+ '[filter:crossdomain]',
+ 'use = egg:swift#crossdomain',
+ 'cross_domain_policy = ',
+ '',
+ ]
+ )
+ end
+ end
+
+end
diff --git a/templates/proxy/crossdomain.conf.erb b/templates/proxy/crossdomain.conf.erb
new file mode 100644
index 00000000..ef21b084
--- /dev/null
+++ b/templates/proxy/crossdomain.conf.erb
@@ -0,0 +1,4 @@
+[filter:crossdomain]
+use = egg:swift#crossdomain
+cross_domain_policy = <%= @cross_domain_policy %>
+