ucb_deployer 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'echoe'
4
4
  require 'spec/rake/spectask'
5
5
 
6
6
 
7
- Echoe.new('ucb_deployer', '0.2.0') do |p|
7
+ Echoe.new('ucb_deployer', '0.2.1') do |p|
8
8
  p.description = "Tool for deploying Confluence/JIRA war files to tomcat"
9
9
  p.url = "http://ucbrb.rubyforge.org"
10
10
  p.author = "Steven Hansen"
@@ -79,11 +79,11 @@ module UcbDeployer
79
79
  end
80
80
 
81
81
  def web_xml_token()
82
- "<!-- filters -->"
82
+ "appropriate error message for any requests. Basically it locks JIRA. -->"
83
83
  end
84
84
 
85
85
  def seraph_config_xml_auth_class_token()
86
- "com.atlassian.seraph.auth.DefaultAuthenticator"
86
+ "com.atlassian.jira.security.login.JiraOsUserAuthenticator"
87
87
  end
88
88
 
89
89
  def entityengine_xml_db_token()
@@ -128,7 +128,7 @@ module UcbDeployer
128
128
  web_xml = web_xml.map do |line|
129
129
  if line =~ /#{web_xml_token}/
130
130
  template = File.open("#{DEPLOYER_HOME}/resources/jira_cas_web.xml") { |f| f.read }
131
- ERB.new(template).result(self.send(:binding))
131
+ line + ERB.new(template).result(self.send(:binding))
132
132
  else
133
133
  line
134
134
  end
@@ -41,18 +41,12 @@
41
41
  </init-param>
42
42
  <init-param>
43
43
  <param-name>login.cookie.key</param-name>
44
- <param-value>seraph.os.cookie</param-value>
44
+ <param-value>seraph.rememberme.cookie</param-value>
45
45
  </init-param>
46
- <!-- This property controls how your cookie is encrypted. If you truly want to secure your cookies, you need
47
- to change this to a secure password -->
48
- <init-param>
49
- <param-name>cookie.encoding</param-name>
50
- <param-value>jiracookie</param-value>
51
- </init-param>
52
- <!-- This property sets the default cookie timeout in seconds. It is currently set to 1 year -->
46
+ <!-- This property sets the default remember me cookie max age in seconds. It is currently set to 2 weeks -->
53
47
  <init-param>
54
48
  <param-name>autologin.cookie.age</param-name>
55
- <param-value>31536000</param-value>
49
+ <param-value>1209600</param-value>
56
50
  </init-param>
57
51
  <!-- Basic Authentication can be enabled by passing the authentication type as a configurable url parameter.
58
52
  With this example, you will need to pass http://mycompany.com/anypage?os_authType=basic in the url to enable Basic Authentication -->
@@ -67,18 +61,24 @@
67
61
  <param-name>insecure.cookie</param-name>
68
62
  <param-value>true</param-value>
69
63
  </init-param> -->
64
+ <init-param>
65
+ <param-name>invalidate.session.on.login</param-name>
66
+ <param-value>true</param-value>
67
+ </init-param>
68
+ <init-param>
69
+ <param-name>invalidate.session.exclude.list</param-name>
70
+ <param-value>ASESSIONID</param-value>
71
+ </init-param>
70
72
  </parameters>
71
73
 
72
- <rolemapper class="com.atlassian.jira.security.JiraRoleMapper"/>
73
-
74
74
  <!-- CROWD:START - If enabling Crowd SSO integration uncomment the following JIRAAuthenticator and comment out the DefaultAuthenticator below -->
75
75
  <!--
76
- <authenticator class="com.atlassian.crowd.integration.seraph.JIRAAuthenticator"/>
76
+ <authenticator class="com.atlassian.crowd.integration.seraph.v22.JIRAAuthenticator"/>
77
77
  -->
78
78
  <!-- CROWD:END -->
79
79
 
80
80
  <!-- CROWD:START - The authenticator below here will need to be commented out for Crowd SSO integration -->
81
- <authenticator class="com.atlassian.seraph.auth.DefaultAuthenticator"/>
81
+ <authenticator class="com.atlassian.jira.security.login.JiraOsUserAuthenticator"/>
82
82
  <!-- CROWD:END -->
83
83
 
84
84
  <!-- NB: the URL to redirect to is now specified by login.url above -->
@@ -86,7 +86,7 @@
86
86
  <service class="com.atlassian.seraph.service.PathService">
87
87
  <init-param>
88
88
  <param-name>config.file</param-name>
89
- <param-value>/seraph-paths.xml</param-value>
89
+ <param-value>seraph-paths.xml</param-value>
90
90
  </init-param>
91
91
  </service>
92
92
 
@@ -97,7 +97,11 @@
97
97
  </init-param>
98
98
  </service>
99
99
  </services>
100
+
101
+ <rolemapper class="com.atlassian.jira.security.JiraRoleMapper"/>
100
102
 
103
+ <elevatedsecurityguard class="com.atlassian.jira.security.login.JiraElevatedSecurityGuard"/>
104
+
101
105
  <interceptors>
102
106
  <interceptor class="com.atlassian.jira.portal.PortalPageInterceptor"/>
103
107
  <interceptor class="com.atlassian.jira.user.preferences.UserPreferencesResetInterceptor"/>
@@ -1,17 +1,29 @@
1
1
  <?xml version="1.0"?>
2
- <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
3
- <web-app>
2
+ <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
5
+ version="2.4">
4
6
  <!-- General -->
5
7
  <display-name>Atlassian JIRA Web Application</display-name>
6
8
  <description>The Atlassian JIRA web application - see http://www.atlassian.com/software/jira for more information
7
9
  </description>
8
10
 
9
- <!-- filters -->
11
+ <!-- Filters -->
12
+
13
+ <!-- =====================================================
14
+ THIS MUST BE THE FIRST FILTER IN THE DEFINED CHAIN
15
+ ===================================================== -->
10
16
  <filter>
11
- <filter-name>DatabaseCompatibilityEnforcer</filter-name>
12
- <filter-class>com.atlassian.jira.appconsistency.db.DatabaseCompatibilityEnforcerFilter</filter-class>
17
+ <filter-name>JiraFirstFilter</filter-name>
18
+ <filter-class>com.atlassian.jira.web.filters.JiraFirstFilter</filter-class>
19
+ </filter>
20
+
21
+ <!-- If serious problems were encountered on Startup, this filter will display an
22
+ appropriate error message for any requests. Basically it locks JIRA. -->
23
+ <filter>
24
+ <filter-name>JiraStartupChecklist</filter-name>
25
+ <filter-class>com.atlassian.jira.startup.JiraStartupChecklistFilter</filter-class>
13
26
  </filter>
14
-
15
27
 
16
28
  <filter>
17
29
  <filter-name>headersanitising</filter-name>
@@ -66,16 +78,77 @@
66
78
  <filter-class>com.atlassian.jira.web.filters.RequestCleanupFilter</filter-class>
67
79
  </filter>
68
80
 
69
- <!-- this filter sets an attribute in the request to stop JiraServletDispatcher from popping all actions off the stack.
81
+ <!-- this filter sets an attribute in the request to stop JiraWebworkActionDispatcher from popping all actions off the stack.
70
82
  It will clear the action stack AFTER the sitemesh decorator has rendered the page.-->
71
83
  <filter>
72
84
  <filter-name>action-cleanup-delay</filter-name>
73
85
  <filter-class>com.atlassian.jira.web.filters.ActionCleanupDelayFilter</filter-class>
74
86
  </filter>
75
87
 
88
+ <filter>
89
+ <filter-name>filter-plugin-dispatcher-before-decoration-request</filter-name>
90
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
91
+ <init-param>
92
+ <param-name>location</param-name>
93
+ <param-value>before-decoration</param-value>
94
+ </init-param>
95
+ <init-param>
96
+ <param-name>dispatcher</param-name>
97
+ <param-value>REQUEST</param-value>
98
+ </init-param>
99
+ </filter>
100
+ <filter>
101
+ <filter-name>filter-plugin-dispatcher-before-decoration-forward</filter-name>
102
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
103
+ <init-param>
104
+ <param-name>location</param-name>
105
+ <param-value>before-decoration</param-value>
106
+ </init-param>
107
+ <init-param>
108
+ <param-name>dispatcher</param-name>
109
+ <param-value>FORWARD</param-value>
110
+ </init-param>
111
+ </filter>
112
+ <filter>
113
+ <filter-name>filter-plugin-dispatcher-before-decoration-include</filter-name>
114
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
115
+ <init-param>
116
+ <param-name>location</param-name>
117
+ <param-value>before-decoration</param-value>
118
+ </init-param>
119
+ <init-param>
120
+ <param-name>dispatcher</param-name>
121
+ <param-value>INCLUDE</param-value>
122
+ </init-param>
123
+ </filter>
124
+ <filter>
125
+ <filter-name>filter-plugin-dispatcher-before-decoration-error</filter-name>
126
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
127
+ <init-param>
128
+ <param-name>location</param-name>
129
+ <param-value>before-decoration</param-value>
130
+ </init-param>
131
+ <init-param>
132
+ <param-name>dispatcher</param-name>
133
+ <param-value>ERROR</param-value>
134
+ </init-param>
135
+ </filter>
136
+
76
137
  <filter>
77
138
  <filter-name>sitemesh-exclude</filter-name>
78
- <filter-class>com.atlassian.jira.web.filters.SitemeshExcludePathFilter</filter-class>
139
+ <filter-class>com.atlassian.jira.web.filters.PathExclusionFilter</filter-class>
140
+ <init-param>
141
+ <param-name>path.exclusion.filter.className</param-name>
142
+ <param-value>com.opensymphony.module.sitemesh.filter.PageFilter</param-value>
143
+ </init-param>
144
+ <init-param>
145
+ <param-name>path.exclusion.filter.paths</param-name>
146
+ <param-value>
147
+ /secure/attachment,
148
+ /secure/thumbnail,
149
+ /secure/applet*
150
+ </param-value>
151
+ </init-param>
79
152
  </filter>
80
153
 
81
154
  <filter>
@@ -85,12 +158,120 @@
85
158
 
86
159
  <filter>
87
160
  <filter-name>encoding</filter-name>
88
- <filter-class>com.atlassian.jira.web.filters.JIRAEncodingFilter</filter-class>
161
+ <filter-class>com.atlassian.jira.web.filters.PathMatchingEncodingFilter</filter-class>
162
+ </filter>
163
+
164
+ <filter>
165
+ <filter-name>filter-plugin-dispatcher-after-encoding-request</filter-name>
166
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
167
+ <init-param>
168
+ <param-name>location</param-name>
169
+ <param-value>after-encoding</param-value>
170
+ </init-param>
171
+ <init-param>
172
+ <param-name>dispatcher</param-name>
173
+ <param-value>REQUEST</param-value>
174
+ </init-param>
175
+ </filter>
176
+ <filter>
177
+ <filter-name>filter-plugin-dispatcher-after-encoding-forward</filter-name>
178
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
179
+ <init-param>
180
+ <param-name>location</param-name>
181
+ <param-value>after-encoding</param-value>
182
+ </init-param>
183
+ <init-param>
184
+ <param-name>dispatcher</param-name>
185
+ <param-value>FORWARD</param-value>
186
+ </init-param>
187
+ </filter>
188
+ <filter>
189
+ <filter-name>filter-plugin-dispatcher-after-encoding-include</filter-name>
190
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
191
+ <init-param>
192
+ <param-name>location</param-name>
193
+ <param-value>after-encoding</param-value>
194
+ </init-param>
195
+ <init-param>
196
+ <param-name>dispatcher</param-name>
197
+ <param-value>INCLUDE</param-value>
198
+ </init-param>
199
+ </filter>
200
+ <filter>
201
+ <filter-name>filter-plugin-dispatcher-after-encoding-error</filter-name>
202
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
203
+ <init-param>
204
+ <param-name>location</param-name>
205
+ <param-value>after-encoding</param-value>
206
+ </init-param>
207
+ <init-param>
208
+ <param-name>dispatcher</param-name>
209
+ <param-value>ERROR</param-value>
210
+ </init-param>
211
+ </filter>
212
+
213
+ <filter>
214
+ <filter-name>caching</filter-name>
215
+ <filter-class>com.atlassian.jira.web.filters.JiraCachingFilter</filter-class>
216
+ </filter>
217
+
218
+ <filter>
219
+ <filter-name>curlyquotes</filter-name>
220
+ <filter-class>com.atlassian.jira.web.filters.CurlyQuotesFilter</filter-class>
221
+ </filter>
222
+
223
+ <filter>
224
+ <filter-name>filter-plugin-dispatcher-before-login-request</filter-name>
225
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
226
+ <init-param>
227
+ <param-name>location</param-name>
228
+ <param-value>before-login</param-value>
229
+ </init-param>
230
+ <init-param>
231
+ <param-name>dispatcher</param-name>
232
+ <param-value>REQUEST</param-value>
233
+ </init-param>
234
+ </filter>
235
+ <filter>
236
+ <filter-name>filter-plugin-dispatcher-before-login-forward</filter-name>
237
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
238
+ <init-param>
239
+ <param-name>location</param-name>
240
+ <param-value>before-login</param-value>
241
+ </init-param>
242
+ <init-param>
243
+ <param-name>dispatcher</param-name>
244
+ <param-value>FORWARD</param-value>
245
+ </init-param>
246
+ </filter>
247
+ <filter>
248
+ <filter-name>filter-plugin-dispatcher-before-login-include</filter-name>
249
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
250
+ <init-param>
251
+ <param-name>location</param-name>
252
+ <param-value>before-login</param-value>
253
+ </init-param>
254
+ <init-param>
255
+ <param-name>dispatcher</param-name>
256
+ <param-value>INCLUDE</param-value>
257
+ </init-param>
258
+ </filter>
259
+ <filter>
260
+ <filter-name>filter-plugin-dispatcher-before-login-error</filter-name>
261
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
262
+ <init-param>
263
+ <param-name>location</param-name>
264
+ <param-value>before-login</param-value>
265
+ </init-param>
266
+ <init-param>
267
+ <param-name>dispatcher</param-name>
268
+ <param-value>ERROR</param-value>
269
+ </init-param>
89
270
  </filter>
90
271
 
91
272
  <filter>
92
273
  <filter-name>login</filter-name>
93
- <filter-class>com.atlassian.seraph.filter.LoginFilter</filter-class>
274
+ <filter-class>com.atlassian.jira.web.filters.JiraLoginFilter</filter-class>
94
275
  </filter>
95
276
 
96
277
  <filter>
@@ -108,23 +289,133 @@
108
289
  <filter-class>com.atlassian.jira.web.filters.gzip.JiraGzipFilter</filter-class>
109
290
  </filter>
110
291
 
292
+ <filter>
293
+ <filter-name>xsrf-token-addition</filter-name>
294
+ <filter-class>com.atlassian.jira.security.xsrf.XsrfTokenAdditionRequestFilter</filter-class>
295
+ </filter>
296
+
111
297
  <filter>
112
298
  <filter-name>access</filter-name>
113
- <filter-class>com.atlassian.jira.web.filters.AccessLogFilter</filter-class>
299
+ <filter-class>com.atlassian.jira.web.filters.accesslog.AccessLogFilter</filter-class>
114
300
  </filter>
115
301
 
302
+ <filter>
303
+ <filter-name>filter-plugin-dispatcher-before-dispatch-request</filter-name>
304
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
305
+ <init-param>
306
+ <param-name>location</param-name>
307
+ <param-value>before-dispatch</param-value>
308
+ </init-param>
309
+ <init-param>
310
+ <param-name>dispatcher</param-name>
311
+ <param-value>REQUEST</param-value>
312
+ </init-param>
313
+ </filter>
314
+ <filter>
315
+ <filter-name>filter-plugin-dispatcher-before-dispatch-forward</filter-name>
316
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
317
+ <init-param>
318
+ <param-name>location</param-name>
319
+ <param-value>before-dispatch</param-value>
320
+ </init-param>
321
+ <init-param>
322
+ <param-name>dispatcher</param-name>
323
+ <param-value>FORWARD</param-value>
324
+ </init-param>
325
+ </filter>
326
+ <filter>
327
+ <filter-name>filter-plugin-dispatcher-before-dispatch-include</filter-name>
328
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
329
+ <init-param>
330
+ <param-name>location</param-name>
331
+ <param-value>before-dispatch</param-value>
332
+ </init-param>
333
+ <init-param>
334
+ <param-name>dispatcher</param-name>
335
+ <param-value>INCLUDE</param-value>
336
+ </init-param>
337
+ </filter>
338
+ <filter>
339
+ <filter-name>filter-plugin-dispatcher-before-dispatch-error</filter-name>
340
+ <filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
341
+ <init-param>
342
+ <param-name>location</param-name>
343
+ <param-value>before-dispatch</param-value>
344
+ </init-param>
345
+ <init-param>
346
+ <param-name>dispatcher</param-name>
347
+ <param-value>ERROR</param-value>
348
+ </init-param>
349
+ </filter>
350
+
351
+ <!-- =====================================================
352
+ THIS MUST BE THE LAST FILTER IN THE DEFINED CHAIN
353
+ ===================================================== -->
354
+ <filter>
355
+ <filter-name>JiraLastFilter</filter-name>
356
+ <filter-class>com.atlassian.jira.web.filters.JiraLastFilter</filter-class>
357
+ </filter>
358
+
359
+ <!-- =====================================================
360
+ FILTER MAPPINGS FOLLOW :
361
+ ===================================================== -->
116
362
 
117
- <!-- THIS MUST REMAIN AS THE TOP FILTER SO THAT THE ENCODING CAN BE SET BEFORE ANYTHING ELSE TOUCHES IT -->
118
363
  <filter-mapping>
119
- <filter-name>DatabaseCompatibilityEnforcer</filter-name>
364
+ <filter-name>JiraFirstFilter</filter-name>
120
365
  <url-pattern>/*</url-pattern>
121
366
  </filter-mapping>
122
367
 
368
+ <!-- If serious problems were encountered on Startup, this filter will display an
369
+ appropriate error message for any requests. Basically it locks JIRA. -->
370
+ <filter-mapping>
371
+ <filter-name>JiraStartupChecklist</filter-name>
372
+ <url-pattern>/*</url-pattern>
373
+ </filter-mapping>
374
+
375
+ <!-- THIS MUST REMAIN AS THE TOP FILTER SO THAT THE ENCODING CAN BE SET BEFORE ANYTHING ELSE TOUCHES IT -->
123
376
  <filter-mapping>
124
377
  <filter-name>encoding</filter-name>
125
378
  <url-pattern>/*</url-pattern>
126
379
  </filter-mapping>
127
380
 
381
+ <filter-mapping>
382
+ <filter-name>caching</filter-name>
383
+ <url-pattern>/*</url-pattern>
384
+ </filter-mapping>
385
+
386
+ <!--
387
+ NOTE: This filter was intended to handle once-common windows-specific characters (like curly quotes)
388
+ but it has been found to interfere with gadget authentication between JIRA and Confluence.
389
+ You can re-enable it by uncommenting it here. See JRA-19856
390
+ -->
391
+ <!--
392
+ <filter-mapping>
393
+ <filter-name>curlyquotes</filter-name>
394
+ <url-pattern>/*</url-pattern>
395
+ </filter-mapping>
396
+ -->
397
+
398
+ <filter-mapping>
399
+ <filter-name>filter-plugin-dispatcher-after-encoding-request</filter-name>
400
+ <url-pattern>/*</url-pattern>
401
+ <dispatcher>REQUEST</dispatcher>
402
+ </filter-mapping>
403
+ <filter-mapping>
404
+ <filter-name>filter-plugin-dispatcher-after-encoding-forward</filter-name>
405
+ <url-pattern>/*</url-pattern>
406
+ <dispatcher>FORWARD</dispatcher>
407
+ </filter-mapping>
408
+ <filter-mapping>
409
+ <filter-name>filter-plugin-dispatcher-after-encoding-include</filter-name>
410
+ <url-pattern>/*</url-pattern>
411
+ <dispatcher>INCLUDE</dispatcher>
412
+ </filter-mapping>
413
+ <filter-mapping>
414
+ <filter-name>filter-plugin-dispatcher-after-encoding-error</filter-name>
415
+ <url-pattern>/*</url-pattern>
416
+ <dispatcher>ERROR</dispatcher>
417
+ </filter-mapping>
418
+
128
419
  <!-- gzip *must* be before UrlRewriteFilter as the rewrite filter sends 'forwards' -->
129
420
  <filter-mapping>
130
421
  <filter-name>gzip</filter-name>
@@ -178,10 +469,6 @@
178
469
  <filter-name>consistency503</filter-name>
179
470
  <url-pattern>/download/*</url-pattern>
180
471
  </filter-mapping>
181
- <filter-mapping>
182
- <filter-name>consistency503</filter-name>
183
- <url-pattern>/includes/js/combined-javascript.js</url-pattern>
184
- </filter-mapping>
185
472
  <filter-mapping>
186
473
  <filter-name>consistency503</filter-name>
187
474
  <url-pattern>/plugins/servlet/*</url-pattern>
@@ -196,7 +483,7 @@
196
483
  </filter-mapping>
197
484
  <filter-mapping>
198
485
  <filter-name>consistency503</filter-name>
199
- <url-pattern>/dwr/*</url-pattern>
486
+ <url-pattern>/rest/*</url-pattern>
200
487
  </filter-mapping>
201
488
 
202
489
  <!--
@@ -269,6 +556,27 @@
269
556
  <url-pattern>/lazyLoader</url-pattern>
270
557
  </filter-mapping>
271
558
 
559
+ <filter-mapping>
560
+ <filter-name>filter-plugin-dispatcher-before-login-request</filter-name>
561
+ <url-pattern>/*</url-pattern>
562
+ <dispatcher>REQUEST</dispatcher>
563
+ </filter-mapping>
564
+ <filter-mapping>
565
+ <filter-name>filter-plugin-dispatcher-before-login-forward</filter-name>
566
+ <url-pattern>/*</url-pattern>
567
+ <dispatcher>FORWARD</dispatcher>
568
+ </filter-mapping>
569
+ <filter-mapping>
570
+ <filter-name>filter-plugin-dispatcher-before-login-include</filter-name>
571
+ <url-pattern>/*</url-pattern>
572
+ <dispatcher>INCLUDE</dispatcher>
573
+ </filter-mapping>
574
+ <filter-mapping>
575
+ <filter-name>filter-plugin-dispatcher-before-login-error</filter-name>
576
+ <url-pattern>/*</url-pattern>
577
+ <dispatcher>ERROR</dispatcher>
578
+ </filter-mapping>
579
+
272
580
  <filter-mapping>
273
581
  <filter-name>login</filter-name>
274
582
  <url-pattern>/*</url-pattern>
@@ -284,6 +592,27 @@
284
592
  <url-pattern>/*</url-pattern>
285
593
  </filter-mapping>
286
594
 
595
+ <filter-mapping>
596
+ <filter-name>filter-plugin-dispatcher-before-decoration-request</filter-name>
597
+ <url-pattern>/*</url-pattern>
598
+ <dispatcher>REQUEST</dispatcher>
599
+ </filter-mapping>
600
+ <filter-mapping>
601
+ <filter-name>filter-plugin-dispatcher-before-decoration-forward</filter-name>
602
+ <url-pattern>/*</url-pattern>
603
+ <dispatcher>FORWARD</dispatcher>
604
+ </filter-mapping>
605
+ <filter-mapping>
606
+ <filter-name>filter-plugin-dispatcher-before-decoration-include</filter-name>
607
+ <url-pattern>/*</url-pattern>
608
+ <dispatcher>INCLUDE</dispatcher>
609
+ </filter-mapping>
610
+ <filter-mapping>
611
+ <filter-name>filter-plugin-dispatcher-before-decoration-error</filter-name>
612
+ <url-pattern>/*</url-pattern>
613
+ <dispatcher>ERROR</dispatcher>
614
+ </filter-mapping>
615
+
287
616
  <filter-mapping>
288
617
  <filter-name>sitemesh</filter-name>
289
618
  <url-pattern>*.jsp</url-pattern>
@@ -314,17 +643,57 @@
314
643
  <url-pattern>/browse/*</url-pattern>
315
644
  </filter-mapping>
316
645
 
646
+ <filter-mapping>
647
+ <filter-name>sitemesh</filter-name>
648
+ <url-pattern>/plugins/servlet/*</url-pattern>
649
+ </filter-mapping>
650
+
651
+ <filter-mapping>
652
+ <filter-name>xsrf-token-addition</filter-name>
653
+ <url-pattern>/*</url-pattern>
654
+ </filter-mapping>
655
+
317
656
  <filter-mapping>
318
657
  <filter-name>access</filter-name>
319
658
  <url-pattern>/*</url-pattern>
320
659
  </filter-mapping>
321
660
 
661
+ <filter-mapping>
662
+ <filter-name>filter-plugin-dispatcher-before-dispatch-request</filter-name>
663
+ <url-pattern>/*</url-pattern>
664
+ <dispatcher>REQUEST</dispatcher>
665
+ </filter-mapping>
666
+ <filter-mapping>
667
+ <filter-name>filter-plugin-dispatcher-before-dispatch-forward</filter-name>
668
+ <url-pattern>/*</url-pattern>
669
+ <dispatcher>FORWARD</dispatcher>
670
+ </filter-mapping>
671
+ <filter-mapping>
672
+ <filter-name>filter-plugin-dispatcher-before-dispatch-include</filter-name>
673
+ <url-pattern>/*</url-pattern>
674
+ <dispatcher>INCLUDE</dispatcher>
675
+ </filter-mapping>
676
+ <filter-mapping>
677
+ <filter-name>filter-plugin-dispatcher-before-dispatch-error</filter-name>
678
+ <url-pattern>/*</url-pattern>
679
+ <dispatcher>ERROR</dispatcher>
680
+ </filter-mapping>
681
+
322
682
  <filter-mapping>
323
683
  <filter-name>headersanitising</filter-name>
324
684
  <url-pattern>/*</url-pattern>
325
685
  </filter-mapping>
326
686
 
327
- <!-- listeners -->
687
+ <filter-mapping>
688
+ <filter-name>JiraLastFilter</filter-name>
689
+ <url-pattern>/*</url-pattern>
690
+ </filter-mapping>
691
+
692
+
693
+ <!-- =====================================================
694
+ LISTENERS FOLLOW :
695
+ ===================================================== -->
696
+
328
697
  <!--
329
698
  This order is important for shutdown and startup, ie the ConsistencyLauncher will call "SHUTDOWN"
330
699
  on a HSQL DB database, and so must be called 'after' the com.atlassian.jira.scheduler.JiraSchedulerLauncher
@@ -335,11 +704,10 @@
335
704
  </listener>
336
705
 
337
706
  <!--
338
- This listener checks for database compatibility and creates a Johnson event
339
- in the case when the database should not be used.
707
+ This listener runs startup checks and locks JIRA if problems are encountered.
340
708
  -->
341
709
  <listener>
342
- <listener-class>com.atlassian.jira.appconsistency.db.DatabaseCompatibilityEnforcer</listener-class>
710
+ <listener-class>com.atlassian.jira.startup.JiraStartupChecklistContextListener</listener-class>
343
711
  </listener>
344
712
 
345
713
  <!-- Check consistency of database etc -->
@@ -362,11 +730,15 @@
362
730
  <listener-class>com.atlassian.jira.soap.axis.JiraAxisHttpListener</listener-class>
363
731
  </listener>
364
732
 
733
+ <!-- The JIRA user session tracker support -->
734
+ <listener>
735
+ <listener-class>com.atlassian.jira.web.session.currentusers.JiraUserSessionDestroyListener</listener-class>
736
+ </listener>
365
737
 
366
738
  <!-- servlets -->
367
739
  <servlet>
368
740
  <servlet-name>action</servlet-name>
369
- <servlet-class>com.atlassian.jira.web.dispatcher.JiraServletDispatcher</servlet-class>
741
+ <servlet-class>com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher</servlet-class>
370
742
  <load-on-startup>1</load-on-startup>
371
743
  </servlet>
372
744
 
@@ -380,6 +752,21 @@
380
752
  <servlet-class>com.atlassian.jira.web.servlet.ViewThumbnailServlet</servlet-class>
381
753
  </servlet>
382
754
 
755
+ <servlet>
756
+ <servlet-name>viewprojectavatar</servlet-name>
757
+ <servlet-class>com.atlassian.jira.web.servlet.ViewProjectAvatarServlet</servlet-class>
758
+ </servlet>
759
+
760
+ <servlet>
761
+ <servlet-name>viewuseravatar</servlet-name>
762
+ <servlet-class>com.atlassian.jira.web.servlet.ViewUserAvatarServlet</servlet-class>
763
+ </servlet>
764
+
765
+ <servlet>
766
+ <servlet-name>viewtemporaryavatar</servlet-name>
767
+ <servlet-class>com.atlassian.jira.web.servlet.ViewTemporaryAvatarServlet</servlet-class>
768
+ </servlet>
769
+
383
770
  <servlet>
384
771
  <servlet-name>quicklink</servlet-name>
385
772
  <servlet-class>com.atlassian.jira.servlet.QuickLinkServlet</servlet-class>
@@ -426,7 +813,7 @@
426
813
 
427
814
  <servlet>
428
815
  <servlet-name>logout</servlet-name>
429
- <servlet-class>com.atlassian.seraph.logout.LogoutServlet</servlet-class>
816
+ <servlet-class>com.atlassian.jira.security.login.JiraLogoutServlet</servlet-class>
430
817
  </servlet>
431
818
 
432
819
  <!-- Axis SOAP Servlet -->
@@ -439,40 +826,6 @@
439
826
  </init-param>
440
827
  </servlet>
441
828
 
442
- <servlet>
443
- <servlet-name>javascript</servlet-name>
444
- <display-name>Combined Javascript Servlet</display-name>
445
- <servlet-class>com.atlassian.cache.servlet.CombinedCachingServlet</servlet-class>
446
- <init-param>
447
- <param-name>content.type</param-name>
448
- <param-value>text/javascript</param-value>
449
- </init-param>
450
- <init-param>
451
- <param-name>content.resolver.resource</param-name>
452
- <param-value>com.atlassian.cache.servlet.resolver.ResourceStreamResolver</param-value>
453
- </init-param>
454
- <init-param>
455
- <param-name>resource1</param-name>
456
- <param-value>/includes/js/x-jira-min.js</param-value>
457
- </init-param>
458
- <init-param>
459
- <param-name>resource2</param-name>
460
- <param-value>/includes/js/jira-global-min.js</param-value>
461
- </init-param>
462
- <init-param>
463
- <param-name>resource3</param-name>
464
- <param-value>/includes/js/quicksearch-min.js</param-value>
465
- </init-param>
466
- <init-param>
467
- <param-name>content.resolver.plugins</param-name>
468
- <param-value>com.atlassian.jira.servlet.PluginJavascriptContentResolver</param-value>
469
- </init-param>
470
- <init-param>
471
- <param-name>plugins1</param-name>
472
- <param-value>includes/js/global.js</param-value>
473
- </init-param>
474
- </servlet>
475
-
476
829
  <!-- IE6 expects CSS files to end with .css (JRA-3747) -->
477
830
  <servlet>
478
831
  <servlet-name>global.css</servlet-name>
@@ -492,92 +845,12 @@
492
845
  </init-param>
493
846
  </servlet>
494
847
 
495
- <servlet>
496
- <servlet-name>css</servlet-name>
497
- <display-name>Combined CSS Servlet</display-name>
498
- <servlet-class>com.atlassian.cache.servlet.CombinedCachingServlet</servlet-class>
499
- <init-param>
500
- <param-name>content.type</param-name>
501
- <param-value>text/css</param-value>
502
- </init-param>
503
- <init-param>
504
- <param-name>content.resolver.dynamicCss</param-name>
505
- <param-value>com.atlassian.jira.servlet.DynamicCSSContentResolver</param-value>
506
- </init-param>
507
- <init-param>
508
- <param-name>dynamicCss</param-name>
509
- <param-value>/global.css</param-value>
510
- </init-param>
511
- <init-param>
512
- <param-name>content.resolver.resource</param-name>
513
- <param-value>com.atlassian.cache.servlet.resolver.ResourceStreamResolver</param-value>
514
- </init-param>
515
- <init-param>
516
- <param-name>resource1</param-name>
517
- <param-value>/styles/global-static-min.css</param-value>
518
- </init-param>
519
- </servlet>
520
-
521
- <servlet>
522
- <servlet-name>printable-css</servlet-name>
523
- <display-name>Combined Printable CSS Servlet</display-name>
524
- <servlet-class>com.atlassian.cache.servlet.CombinedCachingServlet</servlet-class>
525
- <init-param>
526
- <param-name>content.type</param-name>
527
- <param-value>text/css</param-value>
528
- </init-param>
529
- <init-param>
530
- <param-name>content.resolver.dynamicCss</param-name>
531
- <param-value>com.atlassian.jira.servlet.PrintableDynamicCSSContentResolver</param-value>
532
- </init-param>
533
- <init-param>
534
- <param-name>dynamicCss</param-name>
535
- <param-value>/printable.css</param-value>
536
- </init-param>
537
- </servlet>
538
-
539
848
  <servlet>
540
849
  <servlet-name>DisplayChart</servlet-name>
541
850
  <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
542
851
  <load-on-startup>1</load-on-startup>
543
852
  </servlet>
544
853
 
545
- <servlet>
546
- <servlet-name>dwr-invoker</servlet-name>
547
- <display-name>DWR Servlet</display-name>
548
- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
549
- <init-param>
550
- <param-name>debug</param-name>
551
- <param-value>false</param-value>
552
- </init-param>
553
- <init-param>
554
- <param-name>maxCallCount</param-name>
555
- <param-value>1</param-value>
556
- </init-param>
557
- <init-param>
558
- <param-name>allowGetForSafariButMakeForgeryEasier</param-name>
559
- <param-value>true</param-value>
560
- </init-param>
561
- <!--
562
- We need these parameters with DWR 2.0.x because it introduced a new
563
- dynamically generated script/session concept that causes the
564
- engine.js to be never cached on the client. But we don't want this
565
- behaviour.
566
- -->
567
- <init-param>
568
- <param-name>crossDomainSessionSecurity</param-name>
569
- <param-value>false</param-value>
570
- </init-param>
571
- <init-param>
572
- <param-name>url:/engine.js</param-name>
573
- <param-value>com.atlassian.jira.web.util.dwr.JiraDWREngineHandler</param-value>
574
- </init-param>
575
- <init-param>
576
- <param-name>engineHandlerUrl</param-name>
577
- <param-value>/engine.js</param-value>
578
- </init-param>
579
- </servlet>
580
-
581
854
  <servlet>
582
855
  <servlet-name>file-server</servlet-name>
583
856
  <servlet-class>com.atlassian.jira.web.servlet.FileServerServlet</servlet-class>
@@ -608,10 +881,16 @@
608
881
  <servlet-class>com.atlassian.jira.web.servlet.VelocityDecoratorServlet</servlet-class>
609
882
  </servlet>
610
883
 
884
+ <servlet>
885
+ <servlet-name>attachmentzip</servlet-name>
886
+ <servlet-class>com.atlassian.jira.web.servlet.AttachmentZipServlet</servlet-class>
887
+ </servlet>
888
+
889
+
611
890
  <!-- JCAPTCHA -->
612
891
  <servlet>
613
892
  <servlet-name>captcha</servlet-name>
614
- <servlet-class>com.atlassian.jira.servlet.CaptchaServlet</servlet-class>
893
+ <servlet-class>com.atlassian.jira.servlet.JiraCaptchaServlet</servlet-class>
615
894
  <load-on-startup>0</load-on-startup>
616
895
  </servlet>
617
896
 
@@ -622,6 +901,11 @@
622
901
 
623
902
  <!-- end:JCAPTCHA -->
624
903
 
904
+ <servlet-mapping>
905
+ <servlet-name>attachmentzip</servlet-name>
906
+ <url-pattern>/secure/attachmentzip/*</url-pattern>
907
+ </servlet-mapping>
908
+
625
909
  <servlet-mapping>
626
910
  <servlet-name>file-server</servlet-name>
627
911
  <url-pattern>/download/*</url-pattern>
@@ -637,21 +921,6 @@
637
921
  <url-pattern>/styles/global.css</url-pattern>
638
922
  </servlet-mapping>
639
923
 
640
- <servlet-mapping>
641
- <servlet-name>javascript</servlet-name>
642
- <url-pattern>/includes/js/combined-javascript.js</url-pattern>
643
- </servlet-mapping>
644
-
645
- <servlet-mapping>
646
- <servlet-name>css</servlet-name>
647
- <url-pattern>/styles/combined.css</url-pattern>
648
- </servlet-mapping>
649
-
650
- <servlet-mapping>
651
- <servlet-name>printable-css</servlet-name>
652
- <url-pattern>/styles/combined-printable.css</url-pattern>
653
- </servlet-mapping>
654
-
655
924
  <servlet-mapping>
656
925
  <servlet-name>servlet-module-container-servlet</servlet-name>
657
926
  <url-pattern>/plugins/servlet/*</url-pattern>
@@ -686,6 +955,18 @@
686
955
  <url-pattern>/databaseLockedError</url-pattern>
687
956
  </servlet-mapping>
688
957
 
958
+ <servlet-mapping>
959
+ <servlet-name>noopservlet</servlet-name>
960
+ <url-pattern>/JiraLockedError</url-pattern>
961
+ </servlet-mapping>
962
+
963
+ <!-- This are dummy servlet mappings to trick WebSphere 6.1.0.5 to push the request through the filter chain, such
964
+ that the TrustedApplicationFilter filter can respond to the request. -->
965
+ <servlet-mapping>
966
+ <servlet-name>noopservlet</servlet-name>
967
+ <url-pattern>/admin/appTrustCertificate</url-pattern>
968
+ </servlet-mapping>
969
+
689
970
  <servlet-mapping>
690
971
  <servlet-name>viewattachment</servlet-name>
691
972
  <url-pattern>/secure/attachment/*</url-pattern>
@@ -696,6 +977,21 @@
696
977
  <url-pattern>/secure/thumbnail/*</url-pattern>
697
978
  </servlet-mapping>
698
979
 
980
+ <servlet-mapping>
981
+ <servlet-name>viewprojectavatar</servlet-name>
982
+ <url-pattern>/secure/projectavatar</url-pattern>
983
+ </servlet-mapping>
984
+
985
+ <servlet-mapping>
986
+ <servlet-name>viewuseravatar</servlet-name>
987
+ <url-pattern>/secure/useravatar</url-pattern>
988
+ </servlet-mapping>
989
+
990
+ <servlet-mapping>
991
+ <servlet-name>viewtemporaryavatar</servlet-name>
992
+ <url-pattern>/secure/temporaryavatar</url-pattern>
993
+ </servlet-mapping>
994
+
699
995
  <servlet-mapping>
700
996
  <servlet-name>quicklink</servlet-name>
701
997
  <url-pattern>/browse/*</url-pattern>
@@ -726,11 +1022,6 @@
726
1022
  <url-pattern>/charts</url-pattern>
727
1023
  </servlet-mapping>
728
1024
 
729
- <servlet-mapping>
730
- <servlet-name>dwr-invoker</servlet-name>
731
- <url-pattern>/dwr/*</url-pattern>
732
- </servlet-mapping>
733
-
734
1025
  <servlet-mapping>
735
1026
  <servlet-name>issue-view</servlet-name>
736
1027
  <url-pattern>/si/*</url-pattern>
@@ -788,22 +1079,24 @@
788
1079
  </error-page>
789
1080
 
790
1081
  <!-- tag libraries -->
791
- <taglib>
792
- <taglib-uri>webwork</taglib-uri>
793
- <taglib-location>/WEB-INF/tld/webwork.tld</taglib-location>
794
- </taglib>
795
- <taglib>
796
- <taglib-uri>sitemesh-page</taglib-uri>
797
- <taglib-location>/WEB-INF/tld/sitemesh-page.tld</taglib-location>
798
- </taglib>
799
- <taglib>
800
- <taglib-uri>sitemesh-decorator</taglib-uri>
801
- <taglib-location>/WEB-INF/tld/sitemesh-decorator.tld</taglib-location>
802
- </taglib>
803
- <taglib>
804
- <taglib-uri>jiratags</taglib-uri>
805
- <taglib-location>/WEB-INF/tld/atlassian-jira-tags.tld</taglib-location>
806
- </taglib>
1082
+ <jsp-config>
1083
+ <taglib>
1084
+ <taglib-uri>webwork</taglib-uri>
1085
+ <taglib-location>/WEB-INF/tld/webwork.tld</taglib-location>
1086
+ </taglib>
1087
+ <taglib>
1088
+ <taglib-uri>sitemesh-page</taglib-uri>
1089
+ <taglib-location>/WEB-INF/tld/sitemesh-page.tld</taglib-location>
1090
+ </taglib>
1091
+ <taglib>
1092
+ <taglib-uri>sitemesh-decorator</taglib-uri>
1093
+ <taglib-location>/WEB-INF/tld/sitemesh-decorator.tld</taglib-location>
1094
+ </taglib>
1095
+ <taglib>
1096
+ <taglib-uri>jiratags</taglib-uri>
1097
+ <taglib-location>/WEB-INF/tld/atlassian-jira-tags.tld</taglib-location>
1098
+ </taglib>
1099
+ </jsp-config>
807
1100
 
808
1101
  <!-- resource environment references -->
809
1102
 
@@ -37,7 +37,7 @@ describe UcbDeployer::JiraDeployer do
37
37
  File.exists?(@cdep.web_xml).should be_true
38
38
  lines = File.readlines(@cdep.web_xml)
39
39
  lines.any? { |l| l =~ /<\?xml version="1\.0"\?>/ }.should be_true
40
- lines.any? { |l| l =~ /<web-app>/ }.should be_true
40
+ lines.any? { |l| l =~ /^<web-app / }.should be_true
41
41
  lines.any? { |l| l =~ /#{@cdep.cas_server_url}/ }.should be_true
42
42
  lines.any? { |l| l =~ /#{@cdep.cas_service_url}/ }.should be_true
43
43
  lines.any? { |l| l =~ /<\/web-app>/ }.should be_true
data/ucb_deployer.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ucb_deployer}
5
- s.version = "0.2.0"
5
+ s.version = "0.2.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Steven Hansen"]
9
- s.date = %q{2010-12-02}
9
+ s.date = %q{2010-12-06}
10
10
  s.default_executable = %q{ucb_deploy}
11
11
  s.description = %q{Tool for deploying Confluence/JIRA war files to tomcat}
12
12
  s.email = %q{runner@berkeley.edu}
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ucb_deployer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 0
10
- version: 0.2.0
9
+ - 1
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Steven Hansen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-02 00:00:00 -08:00
18
+ date: 2010-12-06 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21