ucb_deployer 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. data/Manifest +19 -15
  2. data/README.txt +67 -0
  3. data/Rakefile +1 -3
  4. data/TODO.txt +5 -0
  5. data/bin/deployer +6 -5
  6. data/lib/ucb_deployer/confluence_deployer.rb +150 -0
  7. data/lib/ucb_deployer/deployer.rb +115 -0
  8. data/lib/ucb_deployer/jira_deployer.rb +77 -0
  9. data/lib/ucb_deployer.rb +46 -0
  10. data/{cas_web.xml → resources/confluence_cas_web.xml} +2 -1
  11. data/resources/jdom.jar +0 -0
  12. data/resources/jira_cas_web.xml +95 -0
  13. data/resources/soulwing-casclient-0.5.3.jar +0 -0
  14. data/spec/fixtures/{bad_dot_cdeprc → confluence/bad_deploy.yml} +0 -0
  15. data/spec/{build/confluence/src/confluence/WEB-INF/classes → fixtures/confluence}/confluence-init.properties +0 -0
  16. data/spec/fixtures/{dot_cdeprc → confluence/deploy.yml} +1 -1
  17. data/spec/{build/confluence/src/confluence/WEB-INF/classes → fixtures/confluence}/seraph-config.xml +0 -0
  18. data/spec/{build/confluence/src/confluence/WEB-INF → fixtures/confluence}/web.xml +0 -0
  19. data/spec/{build/confluence/lib/soulwing-casclient-x.x.x.jar → fixtures/jira/web.xml} +0 -0
  20. data/spec/spec_helper.rb +11 -9
  21. data/spec/{confluence_deployer → ucb_deployer}/confluence_deployer_spec.rb +21 -17
  22. data/spec/{build/confluence/src/confluence/WEB-INF/lib/postgresql-x.x.x.jar → ucb_deployer/jira_deployer_spec.rb} +0 -0
  23. data/spec/{build/confluence/src/confluence/WEB-INF/lib/soulwing-casclient-x.x.x.jar → ucb_deployer/ucb_deployer_spec.rb} +0 -0
  24. data/ucb_deployer.gemspec +4 -4
  25. metadata +27 -20
  26. data/lib/confluence_deployer.rb +0 -228
  27. data/spec/fixtures/confluence-init.properties +0 -41
  28. data/spec/fixtures/seraph-config.xml +0 -46
  29. data/spec/fixtures/web.xml +0 -1016
data/Manifest CHANGED
@@ -1,19 +1,23 @@
1
+ Manifest
1
2
  README.txt
2
3
  Rakefile
4
+ TODO.txt
3
5
  bin/deployer
4
- cas_web.xml
5
- lib/confluence_deployer.rb
6
- spec/build/confluence/lib/soulwing-casclient-x.x.x.jar
7
- spec/build/confluence/src/confluence/WEB-INF/classes/confluence-init.properties
8
- spec/build/confluence/src/confluence/WEB-INF/classes/seraph-config.xml
9
- spec/build/confluence/src/confluence/WEB-INF/lib/postgresql-x.x.x.jar
10
- spec/build/confluence/src/confluence/WEB-INF/lib/soulwing-casclient-x.x.x.jar
11
- spec/build/confluence/src/confluence/WEB-INF/web.xml
12
- spec/confluence_deployer/confluence_deployer_spec.rb
13
- spec/fixtures/bad_dot_cdeprc
14
- spec/fixtures/confluence-init.properties
15
- spec/fixtures/dot_cdeprc
16
- spec/fixtures/seraph-config.xml
17
- spec/fixtures/web.xml
6
+ lib/ucb_deployer.rb
7
+ lib/ucb_deployer/confluence_deployer.rb
8
+ lib/ucb_deployer/deployer.rb
9
+ lib/ucb_deployer/jira_deployer.rb
10
+ resources/confluence_cas_web.xml
11
+ resources/jdom.jar
12
+ resources/jira_cas_web.xml
13
+ resources/soulwing-casclient-0.5.3.jar
14
+ spec/fixtures/confluence/bad_deploy.yml
15
+ spec/fixtures/confluence/confluence-init.properties
16
+ spec/fixtures/confluence/deploy.yml
17
+ spec/fixtures/confluence/seraph-config.xml
18
+ spec/fixtures/confluence/web.xml
19
+ spec/fixtures/jira/web.xml
18
20
  spec/spec_helper.rb
19
- Manifest
21
+ spec/ucb_deployer/confluence_deployer_spec.rb
22
+ spec/ucb_deployer/jira_deployer_spec.rb
23
+ spec/ucb_deployer/ucb_deployer_spec.rb
data/README.txt CHANGED
@@ -0,0 +1,67 @@
1
+
2
+ = UCB Deployer
3
+
4
+ UCB Deployer is gem to automate confluence and jira deployments to Tomcat.
5
+
6
+
7
+ == Getting Started
8
+
9
+ === Installation
10
+ gem install ucb_deployer
11
+
12
+
13
+ === Assumptions
14
+ We assume __Jira__ and __Confluence__ both have their own instance of tomcat (their own
15
+ $CATALINA_HOME). For more information on this type of setup see:
16
+
17
+ http://wikihub.berkeley.edu/x/RQAnAg
18
+
19
+ We also assume the following __config/__ file is setup for each app:
20
+
21
+ $HOME/config/confluence/deploy.yml
22
+ $HOME/config/jira/deploy.yml
23
+
24
+ Where $HOME is the home directory of the user that will be doing the deployments:
25
+ we are using a special user __app_relmgt__ for this purpose.
26
+
27
+ === Configuration
28
+
29
+ The deploy.yml files for __Jira__ and __Confluence__ both accept the following options:
30
+
31
+ * build_dir
32
+ * deploy_dir
33
+ * war_name
34
+ * cas_service_url
35
+ * cas_server_url
36
+ * data_dir
37
+ * svn_username
38
+ * svn_project_url
39
+
40
+ Assuming we had the following directories setup:
41
+ # where we deploy from
42
+ $HOME=/home/app_relmgt
43
+
44
+ # where we run jira (confluence would have it's own dir: /var/lib/confluence)
45
+ $JIRA_HOME=/var/lib/jira
46
+
47
+ $HOME/build/jira/src
48
+ $HOME/build/jira/lib
49
+
50
+ Our __deploy.yml__ file would look like so:
51
+
52
+ build_dir: /home/app_relmgt/build
53
+ deploy_dir: /var/lib/jira/tomcat5/webapps
54
+ war_name: ROOT
55
+ cas_server_url: http://cas-server.berkeley.edu
56
+ cas_service_url: https://wikihub.berkeley.edu
57
+ data_dir: /var/lib/jira/data
58
+ svn_username: app_relmgt
59
+ svn_project_url: svn.berkeley.edu/svn/ist-svn/berkeley/projects/ist/as/webapps/jira_archives/tags
60
+
61
+
62
+ == Usage
63
+ deployer jira VERSION=x.x.x
64
+
65
+ or
66
+
67
+ deployer confluence VERSION=x.x.x
data/Rakefile CHANGED
@@ -3,15 +3,13 @@ require 'rake'
3
3
  require 'echoe'
4
4
  require 'spec/rake/spectask'
5
5
 
6
- Echoe.new('ucb_deployer', '0.0.1') do |p|
6
+ Echoe.new('ucb_deployer', '0.0.2') do |p|
7
7
  p.description = "Tool for deploying java applications"
8
8
  p.url = "http://ucbrb.rubyforge.org"
9
9
  p.author = "Steven Hansen"
10
10
  p.email = "runner@berkeley.edu"
11
- p.ignore_pattern = ["svn_user.yml", "svn_project.rake"]
12
11
  p.project = "ucbrb"
13
12
  p.rdoc_pattern = "README.txt", "lib/**/**"
14
- # p.rdoc_options = "-o doc --inline-source -T hanna lib/*.rb"
15
13
  end
16
14
 
17
15
  desc "Run RSpec tests"
data/TODO.txt ADDED
@@ -0,0 +1,5 @@
1
+ * add "clean" task to remove previous build dirs, files, etc
2
+
3
+ * Don't needlessly download source from svn everytime. If source for requested version has
4
+ already been pulled down to the filesystem, reuse it.
5
+
data/bin/deployer CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rake'
3
- require 'confluence_deployer'
3
+ require 'deployer'
4
4
 
5
5
  Rake.application.init("deployer")
6
6
 
@@ -21,14 +21,15 @@ task :export => [:init] do
21
21
  end
22
22
 
23
23
  task :init => [:check_usage] do
24
- # @deployer = Deployer.factory(:confluence)
25
- @deployer = ConfluenceDeployer.new()
24
+ @deployer = UcbDeployer.factory(ENV["APP"])
26
25
  @deployer.version = ENV["VERSION"]
27
26
  end
28
27
 
29
28
  task :check_usage do
30
- if ENV["VERSION"].nil?
31
- $stderr.puts("Usage: rake deploy VERSION=x.x.x")
29
+ usage = "Usage: deployer APP=<confluence|jira> VERSION=x.x.x"
30
+
31
+ if !(ENV["APP"] && ENV["VERSION"] && [:confluence, :jira].include?(ENV["APP"].to_sym))
32
+ $stderr.puts(usage)
32
33
  exit(1)
33
34
  end
34
35
  end
@@ -0,0 +1,150 @@
1
+
2
+ module UcbDeployer
3
+ class ConfluenceDeployer < Deployer
4
+
5
+ def initialize(config_file = "#{ENV['HOME']}/config/confluence/deploy.yml")
6
+ FileUtils.touch(config_file) if !File.exists?(config_file)
7
+ load_config(config_file)
8
+ end
9
+
10
+ def export()
11
+ UcbDeployer.debug("Exporting from: #{svn_project_url}")
12
+ pwd = Dir.getwd
13
+ Dir.chdir("#{build_dir}")
14
+ FileUtils.rm_rf("#{build_dir}/src")
15
+ `svn export svn+ssh://#{svn_username}@#{svn_project_url}/confluence-#{version}`
16
+ FileUtils.mv("confluence-#{version}", "src")
17
+ Dir.chdir(pwd)
18
+ $stdout.puts("Export Completed")
19
+ end
20
+
21
+ def configure
22
+ config_web_xml
23
+ config_seraph_config_xml
24
+ config_confluence_init_properties
25
+ reshuffle_jars
26
+ end
27
+
28
+ def build
29
+ pwd = Dir.getwd
30
+ Dir.chdir("#{build_dir}/src")
31
+ exec("sh #{build_dir}/src/build.sh")
32
+ Dir.chdir(pwd)
33
+ end
34
+
35
+ def deploy
36
+ display_maintenance_file
37
+ FileUtils.rm_rf(Dir["#{deploy_dir}/#{war_name}*"])
38
+ FileUtils.mkdir("#{deploy_dir}/#{war_name}")
39
+ FileUtils.cp(Dir["#{build_dir}/src/dist/*.war"], "#{deploy_dir}/#{war_name}")
40
+ exec("jar -xvf #{deploy_dir}/#{war_name}/#{war_name}.war")
41
+ FileUtils.rm("#{deploy_dir}/#{war_name}/#{war_name}.war")
42
+ end
43
+
44
+ def rollback
45
+ end
46
+
47
+ def svn_username
48
+ @svn_username || "app_relmgt"
49
+ end
50
+
51
+ def svn_base_url
52
+ @svn_base_url || "svn.berkeley.edu/svn/ist-svn/berkeley/projects/ist/as/webapps/confluence_archives"
53
+ end
54
+
55
+ ##
56
+ # Shortcut to confluence web.xml file
57
+ #
58
+ def web_xml()
59
+ "#{build_dir}/src/confluence/WEB-INF/web.xml"
60
+ end
61
+
62
+ ##
63
+ # Shortcut to confluence seraph-config.xml file
64
+ #
65
+ def seraph_config_xml()
66
+ "#{build_dir}/src/confluence/WEB-INF/classes/seraph-config.xml"
67
+ end
68
+
69
+ ##
70
+ # Shortcut to confluence confluence-init.properties file
71
+ #
72
+ def confluence_init_properties()
73
+ "#{build_dir}/src/confluence/WEB-INF/classes/confluence-init.properties"
74
+ end
75
+
76
+ def web_xml_token()
77
+ "<!-- Uncomment the following to disable the space export long running task. -->"
78
+ end
79
+
80
+ def seraph_config_xml_token()
81
+ "com.atlassian.confluence.user.ConfluenceAuthenticator"
82
+ end
83
+
84
+ def cas_authenticator_class()
85
+ "org.soulwing.cas.apps.atlassian.ConfluenceCasAuthenticator"
86
+ end
87
+
88
+ ##
89
+ # Updates the confluence web.xml file with the soulwing (CAS library)
90
+ # authentication configuration
91
+ #
92
+ def config_web_xml()
93
+ web_xml = File.readlines(self.web_xml)
94
+
95
+ web_xml = web_xml.map do |line|
96
+ if line =~ /#{web_xml_token}/
97
+ template = File.open("#{DEPLOYER_HOME}/resources/confluence_cas_web.xml") { |f| f.read }
98
+ ERB.new(template).result(self.send(:binding))
99
+ else
100
+ line
101
+ end
102
+ end
103
+
104
+ File.open(self.web_xml, "w") do |io|
105
+ web_xml.each { |line| io.puts(line) }
106
+ end
107
+ end
108
+
109
+ ##
110
+ # Updates the confluence seraph_config.xml file with the soulwing
111
+ # authenticator.
112
+ #
113
+ def config_seraph_config_xml()
114
+ seraph_xml = File.readlines(self.seraph_config_xml)
115
+
116
+ seraph_xml = seraph_xml.map do |line|
117
+ if m = /(#{Regexp.quote(seraph_config_xml_token)})/.match(line)
118
+ debug(m[0])
119
+ debug("#{m.pre_match}#{cas_authenticator_class}#{m.post_match}")
120
+ "#{m.pre_match}#{cas_authenticator_class}#{m.post_match}"
121
+ else
122
+ line
123
+ end
124
+ end
125
+
126
+ File.open(self.seraph_config_xml, "w") do |io|
127
+ seraph_xml.each { |line| io.puts(line) }
128
+ end
129
+ end
130
+
131
+ ##
132
+ # Sets the confluence.home property in the file: confluence-init.properties
133
+ #
134
+ def config_confluence_init_properties()
135
+ File.open(self.confluence_init_properties, "w") { |io| io.puts("confluence.home=#{data_dir}") }
136
+ end
137
+
138
+ def reshuffle_jars()
139
+ FileUtils.cp(Dir["#{UcbDeployer::RESOURCES_DIR}/soulwing-casclient-*"],
140
+ "#{build_dir}/src/confluence/WEB-INF/lib/")
141
+ # Remove the postgres jar since we have it installed at the container level
142
+ FileUtils.rm_rf(Dir["#{build_dir}/src/confluence/WEB-INF/lib/postgresql-*"])
143
+ end
144
+
145
+ def debug(str)
146
+ UcbDeployer.debug(str)
147
+ end
148
+ end
149
+ end
150
+
@@ -0,0 +1,115 @@
1
+
2
+ module UcbDeployer
3
+ ##
4
+ # @author Steven Hansen
5
+ #
6
+ # @abstract Subclass and override {#export, #build, #configure, #deploy,
7
+ # #rollback} to implement a custom UcbDeployer class
8
+ #
9
+ class Deployer
10
+
11
+ CONFIG_OPTIONS = [
12
+ :build_dir,
13
+ :deploy_dir,
14
+ :war_name,
15
+ :cas_service_url,
16
+ :cas_server_url,
17
+ :data_dir,
18
+ :svn_username,
19
+ :svn_project_url,
20
+ ]
21
+
22
+
23
+ attr_accessor *CONFIG_OPTIONS
24
+ attr_accessor :version, :debug_mode
25
+
26
+
27
+ def export()
28
+ end
29
+
30
+ def configure()
31
+ end
32
+
33
+ def build()
34
+ end
35
+
36
+ def rollback()
37
+ end
38
+
39
+ def deploy()
40
+ end
41
+
42
+ def svn_username()
43
+ @svn_username || "app_relmgt"
44
+ end
45
+
46
+ ##
47
+ # Configuration options are:
48
+ #
49
+ # +build_dir+
50
+ # +deploy_dir+
51
+ # +war_name+
52
+ # +svn_project_url+
53
+ # +svn_username+
54
+ # +cas_service_url+
55
+ # +cas_server_url+
56
+ # +data_dir+
57
+ #
58
+ def load_config(config_file)
59
+ hash = YAML.load_file(config_file)
60
+ hash.each do |key, val|
61
+ if CONFIG_OPTIONS.include?(key.to_sym)
62
+ self.send("#{key}=", val)
63
+ else
64
+ raise(ConfigError, "Unrecognized Option: #{key}")
65
+ end
66
+ end
67
+ end
68
+
69
+ def display_maintenance_file()
70
+ maint_start = Time.now.strftime("%m-%d-%Y %H:%M:%S")
71
+ template = ERB.new(maintenance_template)
72
+ File.open("/var/www/html/confluence/maintenance.html", "w") do |f|
73
+ f.puts template.result(binding)
74
+ end
75
+ end
76
+
77
+ def maintenance_template()
78
+ %q{
79
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
80
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
81
+
82
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
83
+
84
+ <head>
85
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
86
+ <title>Site Maintenance<title>
87
+ <style type="text/css">
88
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
89
+ div.dialog {
90
+ width: 35em;
91
+ padding: 0 3em;
92
+ margin: 3em auto 0 auto;
93
+ border: 1px solid #ccc;
94
+ border-right-color: #999;
95
+ border-bottom-color: #999;
96
+ }
97
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
98
+ </style>
99
+ </head>
100
+
101
+ <body>
102
+ <div class="dialog">
103
+ <h1>Site Maintenance</h1>
104
+ <p>
105
+ The site is down for maintenance as of: <strong><%= maint_start %></strong> <br/>
106
+ it should be available shortly.
107
+ </p>
108
+ </div>
109
+ </body>
110
+ </html>
111
+ }
112
+ end
113
+
114
+ end
115
+ end
@@ -0,0 +1,77 @@
1
+
2
+ module UcbDeployer
3
+ class JiraDeployer < Deployer
4
+
5
+ def initialize(config_file = "#{ENV['HOME']}/config/jira/deploy.yml")
6
+ FileUtils.touch(config_file) if !File.exists?(config_file)
7
+ load_config(config_file)
8
+ end
9
+
10
+ def export()
11
+ end
12
+
13
+ def configure
14
+ end
15
+
16
+ def build
17
+ end
18
+
19
+ def deploy
20
+ end
21
+
22
+ def rollback
23
+ end
24
+
25
+ ##
26
+ # Shortcut to confluence web.xml file
27
+ #
28
+ def web_xml()
29
+ end
30
+
31
+ ##
32
+ # Shortcut to confluence seraph-config.xml file
33
+ #
34
+ def seraph_config_xml()
35
+ end
36
+
37
+ ##
38
+ # Shortcut to confluence confluence-init.properties file
39
+ #
40
+ def confluence_init_properties()
41
+ end
42
+
43
+ def web_xml_token()
44
+ end
45
+
46
+ def seraph_config_xml_token()
47
+ end
48
+
49
+ def cas_authenticator_class()
50
+ end
51
+
52
+ ##
53
+ # Updates the confluence web.xml file with the soulwing (CAS library)
54
+ # authentication configuration
55
+ #
56
+ def config_web_xml()
57
+ end
58
+
59
+ ##
60
+ # Updates the confluence seraph_config.xml file with the soulwing
61
+ # authenticator.
62
+ #
63
+ def config_seraph_config_xml()
64
+ end
65
+
66
+ ##
67
+ # Sets the confluence.home property in the file: confluence-init.properties
68
+ #
69
+ def config_confluence_init_properties()
70
+ end
71
+
72
+ def reshuffle_jars()
73
+ end
74
+
75
+ end
76
+ end
77
+
@@ -0,0 +1,46 @@
1
+ require 'yaml'
2
+ require 'net/http'
3
+ require 'erb'
4
+ require 'ucb_deployer/deployer'
5
+ require 'ucb_deployer/confluence_deployer'
6
+ require 'ucb_deployer/jira_deployer'
7
+
8
+
9
+ module UcbDeployer
10
+ class ConfigError < RuntimeError; end
11
+
12
+ DEPLOYER_HOME = File.expand_path(File.dirname(__FILE__) + '/..') unless defined?(DEPLOYER_HOME)
13
+ RESOURCES_DIR = File.expand_path("#{DEPLOYER_HOME}/resources") unless defined?(RESOURCES_DIR)
14
+
15
+
16
+ ##
17
+ # Valid options are
18
+ #
19
+ # @param [Symbol|String] valid __app_name__ values are: "confluence", "jira"
20
+ # @raise [UcbDeployer::ConfigError] raises if invalid value is used for __app_name__
21
+ # @return [UcbDeployer::Deployer]
22
+ #
23
+ def self.factory(app_name)
24
+ if app == :confluence
25
+ UcbDeployer::ConfluenceDeployer.new()
26
+ elsif app == :jira
27
+ UcbDeployer::JiraDeployer.new()
28
+ else
29
+ raise(ConfigError, "Unrecognized app_name: #{app_name}")
30
+ end
31
+ end
32
+
33
+ def self.debug(str)
34
+ if debug_mode
35
+ $stdout.puts(str)
36
+ end
37
+ end
38
+
39
+ def self.debug_mode
40
+ @debug_mode || false
41
+ end
42
+
43
+ def self.debug_mode=(bool)
44
+ @debug_mode = bool
45
+ end
46
+ end
@@ -1,4 +1,5 @@
1
1
 
2
+ <!-- CAS Configuration -->
2
3
  <context-param>
3
4
  <param-name>casServerUrl</param-name>
4
5
  <param-value><%= cas_server_url %></param-value>
@@ -97,4 +98,4 @@
97
98
  <filter-name>CAS-Service-Validation</filter-name>
98
99
  <url-pattern>/*</url-pattern>
99
100
  </filter-mapping>
100
-
101
+ <!-- end CAS Configuration -->
Binary file
@@ -0,0 +1,95 @@
1
+
2
+ <!-- CAS Configuration -->
3
+ <context-param>
4
+ <param-name>casServerUrl</param-name>
5
+ <param-value><%= cas_server_url %></param-value>
6
+ </context-param>
7
+ <context-param>
8
+ <param-name>casServiceUrl</param-name>
9
+ <param-value><%= cas_service_url %></param-value>
10
+ </context-param>
11
+
12
+ <listener>
13
+ <listener-class>org.soulwing.cas.filter.ProtocolConfigurationListener</listener-class>
14
+ </listener>
15
+
16
+ <filter>
17
+ <filter-name>CAS-Session-Bypass</filter-name>
18
+ <filter-class>org.soulwing.cas.filter.SessionBypassFilter</filter-class>
19
+ <init-param>
20
+ <param-name>logoutPath</param-name>
21
+ <param-value>/casLogout.action</param-value>
22
+ </init-param>
23
+ <init-param>
24
+ <param-name>applicationLogout</param-name>
25
+ <param-value>true</param-value>
26
+ </init-param>
27
+ <init-param>
28
+ <param-name>globalLogout</param-name>
29
+ <param-value>true</param-value>
30
+ </init-param>
31
+ <init-param>
32
+ <param-name>bypassRedirectUrl</param-name>
33
+ <param-value>/secure/Logout!default.jspa</param-value>
34
+ </init-param>
35
+ <init-param>
36
+ <param-name>bypassPaths</param-name>
37
+ <param-value>/login.jsp, /sr*, /secure/RunPortlet*</param-value>
38
+ </init-param>
39
+ </filter>
40
+
41
+ <filter>
42
+ <filter-name>CAS-Simple-Bypass</filter-name>
43
+ <filter-class>org.soulwing.cas.filter.SimpleBypassFilter</filter-class>
44
+ <init-param>
45
+ <param-name>bypassPaths</param-name>
46
+ <param-value>
47
+ /rpc/*, /images/*, /styles/*, /secure/Logout!default.jspa
48
+ </param-value>
49
+ </init-param>
50
+ </filter>
51
+
52
+ <filter>
53
+ <filter-name>CAS-Logout</filter-name>
54
+ <filter-class>
55
+ org.soulwing.cas.filter.LogoutFilter
56
+ </filter-class>
57
+ <init-param>
58
+ <param-name>logoutPath</param-name>
59
+ <param-value>/secure/Logout!default.jspa</param-value>
60
+ </init-param>
61
+ <init-param>
62
+ <param-name>applicationLogout</param-name>
63
+ <param-value>true</param-value>
64
+ </init-param>
65
+ <init-param>
66
+ <param-name>globalLogout</param-name>
67
+ <param-value>true</param-value>
68
+ </init-param>
69
+ </filter>
70
+
71
+ <filter-mapping>
72
+ <filter-name>CAS-Logout</filter-name>
73
+ <url-pattern>/*</url-pattern>
74
+ </filter-mapping>
75
+
76
+ <filter>
77
+ <filter-name>CAS-Service-Validation</filter-name>
78
+ <filter-class>org.soulwing.cas.filter.ServiceValidationFilter</filter-class>
79
+ </filter>
80
+
81
+ <filter-mapping>
82
+ <filter-name>CAS-Session-Bypass</filter-name>
83
+ <url-pattern>/*</url-pattern>
84
+ </filter-mapping>
85
+
86
+ <filter-mapping>
87
+ <filter-name>CAS-Simple-Bypass</filter-name>
88
+ <url-pattern>/*</url-pattern>
89
+ </filter-mapping>
90
+
91
+ <filter-mapping>
92
+ <filter-name>CAS-Service-Validation</filter-name>
93
+ <url-pattern>/*</url-pattern>
94
+ </filter-mapping>
95
+ <!-- end CAS Configuration -->
@@ -1,4 +1,4 @@
1
- build_dir: /path/to/build_dir
1
+ build_dir: /path/to/build_dir/confluence
2
2
  deploy_dir: /path/to/deploy_dir
3
3
  war_name: war_name
4
4
  svn_username: runner