Skip to content

Commit 2cd5c7a

Browse files
authored
[JENKINS-74800] Reverse Proxy Auth plugin 1.7.7 fails with 2.479.1 (#147)
1 parent 4fc8d22 commit 2cd5c7a

18 files changed

+289
-280
lines changed

pom.xml

+12-61
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.jenkins-ci.plugins</groupId>
66
<artifactId>plugin</artifactId>
7-
<version>4.88</version>
7+
<version>5.2</version>
88
<relativePath />
99
</parent>
1010

@@ -46,8 +46,8 @@
4646
<revision>1.7.8</revision>
4747
<changelist>-SNAPSHOT</changelist>
4848
<gitHubRepo>jenkinsci/${project.artifactId}</gitHubRepo>
49-
<jenkins.baseline>2.426</jenkins.baseline>
50-
<jenkins.version>${jenkins.baseline}.3</jenkins.version>
49+
<jenkins.baseline>2.479</jenkins.baseline>
50+
<jenkins.version>${jenkins.baseline}.1</jenkins.version>
5151
<spotbugs.effort>Max</spotbugs.effort>
5252
<spotless.check.skip>false</spotless.check.skip>
5353
</properties>
@@ -57,78 +57,29 @@
5757
<dependency>
5858
<groupId>io.jenkins.tools.bom</groupId>
5959
<artifactId>bom-${jenkins.baseline}.x</artifactId>
60-
<version>3208.vb_21177d4b_cd9</version>
60+
<version>3613.v584fca_12cf5c</version>
6161
<type>pom</type>
6262
<scope>import</scope>
6363
</dependency>
6464
</dependencies>
6565
</dependencyManagement>
6666

6767
<dependencies>
68+
<!-- Repeat this from jenkins/core/pom.xml to avoid bundling Spring libraries already in core -->
6869
<dependency>
69-
<!-- to appear earlier in the test CP for purposes of PCT -->
70-
<groupId>org.jenkins-ci.main</groupId>
71-
<artifactId>jenkins-core</artifactId>
72-
<version>${jenkins.version}</version>
73-
</dependency>
74-
<dependency>
75-
<!-- for compatibility with https://github.com/jenkinsci/jenkins/pull/4848 -->
76-
<groupId>org.acegisecurity</groupId>
77-
<artifactId>acegi-security</artifactId>
78-
<version>1.0.7</version>
70+
<groupId>org.springframework.security</groupId>
71+
<artifactId>spring-security-web</artifactId>
72+
<scope>provided</scope>
7973
<exclusions>
80-
<exclusion>
81-
<groupId>commons-codec</groupId>
82-
<artifactId>commons-codec</artifactId>
83-
</exclusion>
84-
<exclusion>
85-
<groupId>commons-collections</groupId>
86-
<artifactId>commons-collections</artifactId>
87-
</exclusion>
88-
<exclusion>
89-
<groupId>commons-lang</groupId>
90-
<artifactId>commons-lang</artifactId>
91-
</exclusion>
92-
<exclusion>
93-
<groupId>log4j</groupId>
94-
<artifactId>log4j</artifactId>
95-
</exclusion>
96-
<exclusion>
97-
<groupId>org.springframework</groupId>
98-
<artifactId>spring-core</artifactId>
99-
</exclusion>
100-
<exclusion>
101-
<groupId>org.springframework</groupId>
102-
<artifactId>spring-jdbc</artifactId>
103-
</exclusion>
104-
<exclusion>
105-
<groupId>org.springframework</groupId>
106-
<artifactId>spring-remoting</artifactId>
107-
</exclusion>
10874
<exclusion>
10975
<groupId>org.springframework</groupId>
110-
<artifactId>spring-support</artifactId>
76+
<artifactId>spring-jcl</artifactId>
11177
</exclusion>
11278
</exclusions>
11379
</dependency>
11480
<dependency>
115-
<groupId>org.springframework</groupId>
116-
<artifactId>spring-dao</artifactId>
117-
<version>2.0.8</version>
118-
<exclusions>
119-
<exclusion>
120-
<groupId>org.springframework</groupId>
121-
<artifactId>spring-beans</artifactId>
122-
</exclusion>
123-
<exclusion>
124-
<groupId>org.springframework</groupId>
125-
<artifactId>spring-context</artifactId>
126-
</exclusion>
127-
<exclusion>
128-
<groupId>org.springframework</groupId>
129-
<artifactId>spring-core</artifactId>
130-
</exclusion>
131-
</exclusions>
81+
<groupId>org.springframework.security</groupId>
82+
<artifactId>spring-security-ldap</artifactId>
13283
</dependency>
13384
<dependency>
13485
<groupId>org.jenkins-ci.plugins</groupId>
@@ -191,7 +142,7 @@
191142
<configuration>
192143
<pom>
193144
<sortPom>
194-
<sortDependencies>scope</sortDependencies>
145+
<sortDependencies>none</sortDependencies>
195146
</sortPom>
196147
</pom>
197148
</configuration>

src/main/java/org/acegisecurity/providers/ldap/authenticator/BindAuthenticator2.java renamed to src/main/java/org/jenkinsci/plugins/reverse_proxy_auth/BindAuthenticator2.java

+11-9
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24-
package org.acegisecurity.providers.ldap.authenticator;
24+
package org.jenkinsci.plugins.reverse_proxy_auth;
2525

2626
import java.util.logging.Level;
2727
import java.util.logging.Logger;
28-
import org.acegisecurity.ldap.InitialDirContextFactory;
29-
import org.acegisecurity.userdetails.ldap.LdapUserDetails;
28+
import org.springframework.ldap.core.DirContextOperations;
29+
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
30+
import org.springframework.security.core.Authentication;
31+
import org.springframework.security.ldap.authentication.BindAuthenticator;
3032

3133
/**
3234
* {@link BindAuthenticator} with improved diagnostics.
@@ -37,19 +39,19 @@ public class BindAuthenticator2 extends BindAuthenticator {
3739
/** If we ever had a successful authentication, */
3840
private boolean hadSuccessfulAuthentication;
3941

40-
public BindAuthenticator2(InitialDirContextFactory initialDirContextFactory) {
41-
super(initialDirContextFactory);
42+
public BindAuthenticator2(BaseLdapPathContextSource contextSource) {
43+
super(contextSource);
4244
}
4345

4446
@Override
45-
public LdapUserDetails authenticate(String username, String password) {
46-
LdapUserDetails user = super.authenticate(username, password);
47+
public DirContextOperations authenticate(Authentication authentication) {
48+
DirContextOperations operations = super.authenticate(authentication);
4749
hadSuccessfulAuthentication = true;
48-
return user;
50+
return operations;
4951
}
5052

5153
@Override
52-
void handleBindException(String userDn, String username, Throwable cause) {
54+
protected void handleBindException(String userDn, String username, Throwable cause) {
5355
LOGGER.log(
5456
hadSuccessfulAuthentication ? Level.FINE : Level.WARNING,
5557
"Failed to bind to LDAP: userDn" + userDn + " username=" + username,

src/main/java/org/jenkinsci/plugins/reverse_proxy_auth/ReverseProxySearchTemplate.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package org.jenkinsci.plugins.reverse_proxy_auth;
22

33
import edu.umd.cs.findbugs.annotations.CheckForNull;
4+
import java.util.Collection;
45
import java.util.Set;
5-
import org.acegisecurity.GrantedAuthority;
66
import org.jenkinsci.plugins.reverse_proxy_auth.data.SearchTemplate;
7+
import org.springframework.security.core.GrantedAuthority;
78

89
/**
910
* @author Wilder Rodrigues ([email protected])
@@ -15,10 +16,11 @@ public Set<String> executeReadOnly(ContextExecutor ce) {
1516
}
1617

1718
public Set<String> searchForSingleAttributeValues(
18-
final SearchTemplate template, final @CheckForNull GrantedAuthority[] authorities) {
19+
final SearchTemplate template, final @CheckForNull Collection<? extends GrantedAuthority> authorities) {
1920

2021
class SingleAttributeSearchCallback implements ContextExecutor {
2122

23+
@Override
2224
public Set<String> executeWithContext() {
2325
return template.processAuthorities(authorities);
2426
}

0 commit comments

Comments
 (0)