Skip to content
This repository was archived by the owner on Feb 9, 2021. It is now read-only.

Commit 5540d97

Browse files
committed
using servlet3 auth as source
1 parent 81fc11c commit 5540d97

File tree

5 files changed

+46
-5
lines changed

5 files changed

+46
-5
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
<weld-spi.version>1.1.Final</weld-spi.version>
5959
<weld.version>1.1.13.Final</weld.version>
6060

61-
<servlet-api.version>2.5</servlet-api.version>
61+
<servlet-api.version>3.0.1</servlet-api.version>
6262
<jsp-api.version>2.0</jsp-api.version>
6363
<jboss-ejb3-api.version>3.1.0</jboss-ejb3-api.version>
6464
<xml-apis.version>1.3.04</xml-apis.version>
@@ -734,7 +734,7 @@
734734

735735
<dependency>
736736
<groupId>javax.servlet</groupId>
737-
<artifactId>servlet-api</artifactId>
737+
<artifactId>javax.servlet-api</artifactId>
738738
<version>${servlet-api.version}</version>
739739
</dependency>
740740

uberfire-security/uberfire-security-server/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
<dependency>
4646
<groupId>javax.servlet</groupId>
47-
<artifactId>servlet-api</artifactId>
47+
<artifactId>javax.servlet-api</artifactId>
4848
<scope>provided</scope>
4949
</dependency>
5050

uberfire-security/uberfire-security-server/src/main/java/org/uberfire/security/server/auth/JACCAuthenticationScheme.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void challengeClient(SecurityContext context) {
1616
}
1717

1818
@Override
19-
public Credential buildCredential(SecurityContext context) {
19+
public Credential buildCredential( SecurityContext context) {
2020

2121
final HttpSecurityContext httpSecurityContext = checkInstanceOf("context", context, HttpSecurityContext.class);
2222

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.uberfire.security.server.auth.source;
2+
3+
import javax.security.jacc.PolicyContext;
4+
import javax.servlet.ServletException;
5+
import javax.servlet.http.HttpServletRequest;
6+
7+
import org.uberfire.security.auth.Credential;
8+
import org.uberfire.security.impl.auth.UserNameCredential;
9+
import org.uberfire.security.impl.auth.UsernamePasswordCredential;
10+
11+
import static org.kie.commons.validation.Preconditions.*;
12+
13+
public class HttpServletRequestAuthenticationSource extends JACCAuthenticationSource {
14+
15+
@Override
16+
public boolean supportsCredential( final Credential credential ) {
17+
if ( credential == null ) {
18+
return false;
19+
}
20+
return credential instanceof UserNameCredential;
21+
}
22+
23+
@Override
24+
public boolean authenticate( Credential credential ) {
25+
try {
26+
final UserNameCredential userNameCredential = checkInstanceOf( "credential", credential, UserNameCredential.class );
27+
if ( userNameCredential instanceof UsernamePasswordCredential ) {
28+
29+
final HttpServletRequest request = (HttpServletRequest) PolicyContext.getContext( "javax.servlet.http.HttpServletRequest" );
30+
try {
31+
request.login( userNameCredential.getUserName(), ( (UsernamePasswordCredential) userNameCredential ).getPassword().toString() );
32+
} catch ( final ServletException ex ) {
33+
return false;
34+
}
35+
}
36+
return super.authenticate( credential );
37+
} catch ( final Exception e ) {
38+
return false;
39+
}
40+
}
41+
}

uberfire-server/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555
<dependency>
5656
<groupId>javax.servlet</groupId>
57-
<artifactId>servlet-api</artifactId>
57+
<artifactId>javax.servlet-api</artifactId>
5858
<scope>provided</scope>
5959
</dependency>
6060
</dependencies>

0 commit comments

Comments
 (0)