Skip to content

Commit e09fed7

Browse files
committed
bearer auth not set on readResolve() (fixes #608)
1 parent 97afc22 commit e09fed7

File tree

2 files changed

+60
-49
lines changed

2 files changed

+60
-49
lines changed

src/main/java/hudson/plugins/jira/JiraSite.java

+43-37
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,45 @@
33
import static org.apache.commons.lang.StringUtils.isEmpty;
44
import static org.apache.commons.lang.StringUtils.isNotEmpty;
55

6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.io.PrintStream;
9+
import java.net.MalformedURLException;
10+
import java.net.URI;
11+
import java.net.URISyntaxException;
12+
import java.net.URL;
13+
import java.nio.file.Path;
14+
import java.util.ArrayList;
15+
import java.util.Arrays;
16+
import java.util.Collections;
17+
import java.util.Date;
18+
import java.util.HashMap;
19+
import java.util.HashSet;
20+
import java.util.List;
21+
import java.util.Map;
22+
import java.util.Optional;
23+
import java.util.Set;
24+
import java.util.concurrent.ExecutorService;
25+
import java.util.concurrent.Executors;
26+
import java.util.concurrent.ThreadFactory;
27+
import java.util.concurrent.TimeUnit;
28+
import java.util.concurrent.TimeoutException;
29+
import java.util.concurrent.atomic.AtomicInteger;
30+
import java.util.concurrent.locks.Lock;
31+
import java.util.concurrent.locks.ReentrantLock;
32+
import java.util.logging.Level;
33+
import java.util.logging.Logger;
34+
import java.util.regex.Pattern;
35+
36+
import javax.annotation.PreDestroy;
37+
import javax.servlet.ServletException;
38+
39+
import org.kohsuke.stapler.AncestorInPath;
40+
import org.kohsuke.stapler.DataBoundConstructor;
41+
import org.kohsuke.stapler.DataBoundSetter;
42+
import org.kohsuke.stapler.QueryParameter;
43+
import org.kohsuke.stapler.interceptor.RequirePOST;
44+
645
import com.atlassian.event.api.EventPublisher;
746
import com.atlassian.httpclient.apache.httpcomponents.DefaultHttpClientFactory;
847
import com.atlassian.httpclient.api.HttpClient;
@@ -26,6 +65,7 @@
2665
import com.cloudbees.plugins.credentials.domains.URIRequirementBuilder;
2766
import com.github.benmanes.caffeine.cache.Cache;
2867
import com.github.benmanes.caffeine.cache.Caffeine;
68+
2969
import edu.umd.cs.findbugs.annotations.CheckForNull;
3070
import edu.umd.cs.findbugs.annotations.NonNull;
3171
import edu.umd.cs.findbugs.annotations.Nullable;
@@ -34,10 +74,10 @@
3474
import hudson.Util;
3575
import hudson.model.AbstractDescribableImpl;
3676
import hudson.model.Descriptor;
37-
import hudson.model.Descriptor.FormException;
3877
import hudson.model.Item;
3978
import hudson.model.ItemGroup;
4079
import hudson.model.Job;
80+
import hudson.model.Descriptor.FormException;
4181
import hudson.plugins.jira.extension.ExtendedAsynchronousJiraRestClient;
4282
import hudson.plugins.jira.extension.ExtendedJiraRestClient;
4383
import hudson.plugins.jira.extension.ExtendedVersion;
@@ -46,43 +86,7 @@
4686
import hudson.util.FormValidation;
4787
import hudson.util.ListBoxModel;
4888
import hudson.util.Secret;
49-
import java.io.File;
50-
import java.io.IOException;
51-
import java.io.PrintStream;
52-
import java.net.MalformedURLException;
53-
import java.net.URI;
54-
import java.net.URISyntaxException;
55-
import java.net.URL;
56-
import java.nio.file.Path;
57-
import java.util.ArrayList;
58-
import java.util.Arrays;
59-
import java.util.Collections;
60-
import java.util.Date;
61-
import java.util.HashMap;
62-
import java.util.HashSet;
63-
import java.util.List;
64-
import java.util.Map;
65-
import java.util.Optional;
66-
import java.util.Set;
67-
import java.util.concurrent.ExecutorService;
68-
import java.util.concurrent.Executors;
69-
import java.util.concurrent.ThreadFactory;
70-
import java.util.concurrent.TimeUnit;
71-
import java.util.concurrent.TimeoutException;
72-
import java.util.concurrent.atomic.AtomicInteger;
73-
import java.util.concurrent.locks.Lock;
74-
import java.util.concurrent.locks.ReentrantLock;
75-
import java.util.logging.Level;
76-
import java.util.logging.Logger;
77-
import java.util.regex.Pattern;
78-
import javax.annotation.PreDestroy;
79-
import javax.servlet.ServletException;
8089
import jenkins.model.Jenkins;
81-
import org.kohsuke.stapler.AncestorInPath;
82-
import org.kohsuke.stapler.DataBoundConstructor;
83-
import org.kohsuke.stapler.DataBoundSetter;
84-
import org.kohsuke.stapler.QueryParameter;
85-
import org.kohsuke.stapler.interceptor.RequirePOST;
8690

8791
/**
8892
* <b>You must get instance of this only by using the static {@link #get} or {@link #getSitesFromFolders(ItemGroup)} methods</b>
@@ -684,6 +688,8 @@ protected Object readResolve() throws FormException {
684688
jiraSite.setAppendChangeTimestamp(appendChangeTimestamp);
685689
jiraSite.setDisableChangelogAnnotations(disableChangelogAnnotations);
686690
jiraSite.setDateTimePattern(dateTimePattern);
691+
jiraSite.setUseBearerAuth(useBearerAuth);
692+
687693
return jiraSite;
688694
}
689695

src/test/java/hudson/plugins/jira/JiraSiteTest.java

+17-12
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@
1313
import static org.mockito.Mockito.spy;
1414
import static org.mockito.Mockito.when;
1515

16+
import java.io.IOException;
17+
import java.net.MalformedURLException;
18+
import java.net.URL;
19+
import java.util.Arrays;
20+
import java.util.Collections;
21+
22+
import org.junit.Before;
23+
import org.junit.Rule;
24+
import org.junit.Test;
25+
import org.jvnet.hudson.test.Issue;
26+
import org.jvnet.hudson.test.JenkinsRule;
27+
import org.jvnet.hudson.test.WithoutJenkins;
28+
1629
import com.cloudbees.hudson.plugins.folder.AbstractFolderProperty;
1730
import com.cloudbees.hudson.plugins.folder.AbstractFolderPropertyDescriptor;
1831
import com.cloudbees.hudson.plugins.folder.Folder;
@@ -24,25 +37,15 @@
2437
import com.cloudbees.plugins.credentials.domains.DomainSpecification;
2538
import com.cloudbees.plugins.credentials.domains.HostnameSpecification;
2639
import com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl;
27-
import hudson.model.Descriptor.FormException;
40+
2841
import hudson.model.FreeStyleProject;
2942
import hudson.model.Job;
43+
import hudson.model.Descriptor.FormException;
3044
import hudson.plugins.jira.model.JiraIssue;
3145
import hudson.util.DescribableList;
3246
import hudson.util.Secret;
3347
import hudson.util.XStream2;
34-
import java.io.IOException;
35-
import java.net.MalformedURLException;
36-
import java.net.URL;
37-
import java.util.Arrays;
38-
import java.util.Collections;
3948
import jenkins.model.Jenkins;
40-
import org.junit.Before;
41-
import org.junit.Rule;
42-
import org.junit.Test;
43-
import org.jvnet.hudson.test.Issue;
44-
import org.jvnet.hudson.test.JenkinsRule;
45-
import org.jvnet.hudson.test.WithoutJenkins;
4649

4750
public class JiraSiteTest {
4851

@@ -164,6 +167,7 @@ public void deserializeNormal() throws IOException, FormException {
164167
CredentialsProvider.lookupStores(j.jenkins).iterator().next().addDomain(domain, c);
165168

166169
JiraSite site = new JiraSite(exampleOrg, null, c.getId(), false, false, null, false, null, null, true);
170+
site.setUseBearerAuth(true);
167171

168172
XStream2 xStream2 = new XStream2();
169173
String xml = xStream2.toXML(site);
@@ -174,6 +178,7 @@ public void deserializeNormal() throws IOException, FormException {
174178

175179
JiraSite site1 = (JiraSite) xStream2.fromXML(xml);
176180
assertNotNull(site1.credentialsId);
181+
assertTrue(site1.useBearerAuth);
177182
}
178183

179184
@WithoutJenkins

0 commit comments

Comments
 (0)