|
4 | 4 | import java.io.FileNotFoundException; |
5 | 5 | import java.io.IOException; |
6 | 6 | import java.io.InputStream; |
7 | | -import java.io.StringReader; |
8 | 7 | import java.net.URL; |
9 | 8 | import java.security.GeneralSecurityException; |
10 | | -import java.security.KeyFactory; |
11 | | -import java.security.NoSuchAlgorithmException; |
12 | 9 | import java.security.cert.Certificate; |
13 | 10 | import java.security.cert.CertificateException; |
14 | 11 | import java.security.cert.CertificateFactory; |
15 | 12 | import java.security.interfaces.RSAPublicKey; |
16 | | -import java.security.spec.EncodedKeySpec; |
17 | | -import java.security.spec.InvalidKeySpecException; |
18 | | -import java.security.spec.RSAPublicKeySpec; |
19 | | -import java.security.spec.X509EncodedKeySpec; |
20 | | -import java.time.Duration; |
21 | 13 | import java.util.ArrayList; |
22 | 14 | import java.util.Arrays; |
23 | 15 | import java.util.List; |
24 | 16 | import javax.servlet.FilterChain; |
25 | 17 | import javax.servlet.ServletException; |
26 | 18 | import javax.servlet.http.HttpServletRequest; |
27 | 19 | import javax.servlet.http.HttpServletResponse; |
28 | | -import javax.xml.bind.DatatypeConverter; |
29 | | - |
30 | 20 | import org.apache.commons.codec.binary.Base64; |
31 | | -import org.apache.http.HttpEntity; |
32 | | -import org.apache.http.ParseException; |
33 | | -import org.apache.http.client.ClientProtocolException; |
34 | | -import org.apache.http.client.HttpClient; |
35 | | -import org.apache.http.client.methods.CloseableHttpResponse; |
36 | | -import org.apache.http.client.methods.HttpGet; |
37 | | -import org.apache.http.impl.client.CloseableHttpClient; |
38 | | -import org.apache.http.impl.client.HttpClients; |
39 | | -import org.apache.http.util.EntityUtils; |
| 21 | +import org.springframework.beans.factory.annotation.Value; |
40 | 22 | import org.springframework.http.HttpStatus; |
41 | 23 | import org.springframework.security.authentication.AuthenticationManager; |
42 | 24 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
|
47 | 29 |
|
48 | 30 | import com.auth0.jwt.JWT; |
49 | 31 | import com.auth0.jwt.algorithms.Algorithm; |
50 | | -import com.auth0.jwt.exceptions.JWTVerificationException; |
51 | 32 | import com.auth0.jwt.interfaces.DecodedJWT; |
52 | 33 | import com.auth0.jwt.interfaces.JWTVerifier; |
53 | 34 | import com.fasterxml.jackson.databind.JsonNode; |
54 | 35 | import com.fasterxml.jackson.databind.ObjectMapper; |
55 | | -import com.fasterxml.jackson.databind.node.ObjectNode; |
56 | | -import com.google.api.client.util.PemReader; |
57 | 36 |
|
58 | 37 | public class BrapiTestServerJWTAuthFilter extends BasicAuthenticationFilter { |
59 | 38 | private static final List<String> USER_IDS = Arrays.asList("dummy", "dummyAdmin", "113212610256718182401"); |
60 | 39 | private static final List<String> ADMIN_IDS = Arrays.asList("dummyAdmin", "113212610256718182401"); |
61 | | - private static final String OIDC_DISCOVERY_URL = "https://auth.brapi.org/auth/realms/brapi/.well-known/openid-configuration"; |
62 | 40 |
|
63 | | - public BrapiTestServerJWTAuthFilter(AuthenticationManager authManager) { |
| 41 | + private String oidcDiscoveryUrl; |
| 42 | + |
| 43 | + public BrapiTestServerJWTAuthFilter(AuthenticationManager authManager, String oidcDiscoveryUrl) { |
64 | 44 | super(authManager); |
| 45 | + this.oidcDiscoveryUrl = oidcDiscoveryUrl; |
65 | 46 | } |
66 | 47 |
|
67 | 48 | @Override |
@@ -121,7 +102,7 @@ private String validateOAuthToken(HttpServletRequest request) { |
121 | 102 | String token = request.getHeader("Authorization"); |
122 | 103 | if (token != null) { |
123 | 104 | token = token.replaceFirst("Bearer ", ""); |
124 | | - RSAPublicKey pubKey = getPublicKey(OIDC_DISCOVERY_URL); |
| 105 | + RSAPublicKey pubKey = getPublicKey(oidcDiscoveryUrl); |
125 | 106 |
|
126 | 107 | Algorithm algorithm = Algorithm.RSA256(pubKey, null); |
127 | 108 | JWTVerifier verifier = JWT.require(algorithm) |
|
0 commit comments