Skip to content

Commit 60cfd38

Browse files
authored
Implementert idporten støtte. Forenkling azure. Generell rydding. (#1211)
1 parent 4c0d7cc commit 60cfd38

34 files changed

+751
-1729
lines changed

pom.xml

+1-8
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<!-- Eksterne avhengigheter -->
4545

4646
<swagger-codegen-maven-plugin.version>3.0.46</swagger-codegen-maven-plugin.version> <!-- > 3.0.41 har bug med slf4.. -->
47-
<graphql-java.version>21.0</graphql-java.version>
47+
<graphql-java.version>21.1</graphql-java.version>
4848
<graphql-scalar-java.version>21.0</graphql-scalar-java.version>
4949
<avro.version>1.11.2</avro.version>
5050
</properties>
@@ -296,13 +296,6 @@
296296
<artifactId>aordningen-inntektsinformasjon-v1</artifactId>
297297
<version>1.7</version>
298298
</dependency>
299-
300-
<dependency>
301-
<groupId>org.opensaml</groupId>
302-
<artifactId>opensaml-security-impl</artifactId>
303-
<version>3.4.6</version>
304-
</dependency>
305-
306299
</dependencies>
307300
</dependencyManagement>
308301

server/application.properties

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
server.https.port=8063
2+
idporten.acr.scope=idporten-loa-high
23

34
java.security.auth.login.config=server/src/main/resources/kafkasecurity.conf
45

server/pom.xml

-5
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,6 @@
202202
<artifactId>nv-i18n</artifactId>
203203
</dependency>
204204

205-
<dependency>
206-
<groupId>org.opensaml</groupId>
207-
<artifactId>opensaml-security-impl</artifactId>
208-
</dependency>
209-
210205
<!-- Testavhengigheter -->
211206
</dependencies>
212207

server/src/main/java/no/nav/foreldrepenger/vtp/server/ApplicationConfigJersey.java

+46-53
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,7 @@
1313
import java.util.Set;
1414
import java.util.stream.Collectors;
1515

16-
import jakarta.servlet.http.HttpServletRequest;
17-
import jakarta.ws.rs.ApplicationPath;
18-
import jakarta.ws.rs.NotFoundException;
19-
import jakarta.ws.rs.Produces;
20-
import jakarta.ws.rs.container.ContainerRequestContext;
21-
import jakarta.ws.rs.container.ContainerResponseContext;
22-
import jakarta.ws.rs.container.ContainerResponseFilter;
23-
import jakarta.ws.rs.core.Context;
24-
import jakarta.ws.rs.core.MediaType;
25-
import jakarta.ws.rs.core.Response;
26-
import jakarta.ws.rs.ext.ContextResolver;
27-
import jakarta.ws.rs.ext.ExceptionMapper;
28-
import jakarta.ws.rs.ext.ParamConverter;
29-
import jakarta.ws.rs.ext.ParamConverterProvider;
30-
import jakarta.ws.rs.ext.Provider;
16+
import com.fasterxml.jackson.databind.json.JsonMapper;
3117

3218
import org.apache.kafka.clients.admin.AdminClient;
3319
import org.glassfish.hk2.utilities.binding.AbstractBinder;
@@ -50,6 +36,21 @@
5036
import io.swagger.v3.oas.models.OpenAPI;
5137
import io.swagger.v3.oas.models.info.Info;
5238
import io.swagger.v3.oas.models.servers.Server;
39+
import jakarta.servlet.http.HttpServletRequest;
40+
import jakarta.ws.rs.ApplicationPath;
41+
import jakarta.ws.rs.NotFoundException;
42+
import jakarta.ws.rs.Produces;
43+
import jakarta.ws.rs.container.ContainerRequestContext;
44+
import jakarta.ws.rs.container.ContainerResponseContext;
45+
import jakarta.ws.rs.container.ContainerResponseFilter;
46+
import jakarta.ws.rs.core.Context;
47+
import jakarta.ws.rs.core.MediaType;
48+
import jakarta.ws.rs.core.Response;
49+
import jakarta.ws.rs.ext.ContextResolver;
50+
import jakarta.ws.rs.ext.ExceptionMapper;
51+
import jakarta.ws.rs.ext.ParamConverter;
52+
import jakarta.ws.rs.ext.ParamConverterProvider;
53+
import jakarta.ws.rs.ext.Provider;
5354
import no.nav.axsys.AxsysEnhetstilgangMock;
5455
import no.nav.axsys.AxsysEnhetstilgangV2Mock;
5556
import no.nav.digdir.DigdirKrrProxyMock;
@@ -58,18 +59,17 @@
5859
import no.nav.foreldrepenger.fpwsproxy.arena.FpWsProxyArenaMock;
5960
import no.nav.foreldrepenger.fpwsproxy.oppdrag.FpWsProxySimuleringOppdragMock;
6061
import no.nav.foreldrepenger.fpwsproxy.tilbakekreving.FpWsProxyTilbakekrevingMock;
62+
import no.nav.foreldrepenger.fpwsproxy.tilbakekreving.TilbakekrevingKonsistensTjeneste;
6163
import no.nav.foreldrepenger.vtp.kafkaembedded.LocalKafkaProducer;
6264
import no.nav.foreldrepenger.vtp.server.api.journalforing.JournalforingRestTjeneste;
6365
import no.nav.foreldrepenger.vtp.server.api.kafka.KafkaRestTjeneste;
6466
import no.nav.foreldrepenger.vtp.server.api.pdl.PdlLeesahRestTjeneste;
6567
import no.nav.foreldrepenger.vtp.server.api.scenario.TestscenarioRestTjeneste;
6668
import no.nav.foreldrepenger.vtp.server.api.scenario.TestscenarioV2RestTjeneste;
67-
import no.nav.foreldrepenger.vtp.server.auth.rest.aadfp.EnkelAADRestTjeneste;
69+
import no.nav.foreldrepenger.vtp.server.auth.rest.azuread.AzureAdRestTjeneste;
70+
import no.nav.foreldrepenger.vtp.server.auth.rest.azuread.MicrosoftGraphApiMock;
6871
import no.nav.foreldrepenger.vtp.server.auth.rest.abac.PdpRestTjeneste;
69-
import no.nav.foreldrepenger.vtp.server.auth.rest.azureAD.AADRestTjeneste;
70-
import no.nav.foreldrepenger.vtp.server.auth.rest.azureAD.LoginserviceLoginTjeneste;
71-
import no.nav.foreldrepenger.vtp.server.auth.rest.azureAD.MicrosoftGraphApiMock;
72-
import no.nav.foreldrepenger.vtp.server.auth.rest.isso.OpenAMRestService;
72+
import no.nav.foreldrepenger.vtp.server.auth.rest.idporten.IdportenLoginTjeneste;
7373
import no.nav.foreldrepenger.vtp.server.auth.rest.sts.STSRestTjeneste;
7474
import no.nav.foreldrepenger.vtp.server.auth.rest.tokenx.TokenxRestTjeneste;
7575
import no.nav.foreldrepenger.vtp.server.selftest.IsAliveImpl;
@@ -82,7 +82,6 @@
8282
import no.nav.medl2.rest.api.v1.MedlemskapsunntakMock;
8383
import no.nav.mock.pesys.UføreMock;
8484
import no.nav.nom.SkjermetPersonMock;
85-
import no.nav.foreldrepenger.fpwsproxy.tilbakekreving.TilbakekrevingKonsistensTjeneste;
8685
import no.nav.omsorgspenger.rammemeldinger.OmsorgspengerMock;
8786
import no.nav.oppgave.OppgaveMockImpl;
8887
import no.nav.pdl.PdlMock;
@@ -107,18 +106,14 @@ public class ApplicationConfigJersey extends ResourceConfig {
107106
public ApplicationConfigJersey() {
108107
setApplicationName("VTP");
109108
packages("no.nav", "com.fasterxml.jackson.jaxrs.json");
110-
register(new LoggingFeature(java.util.logging.Logger.getLogger(getClass().getName()),
111-
FINE, PAYLOAD_ANY, 10000));
109+
register(new LoggingFeature(java.util.logging.Logger.getLogger(getClass().getName()), FINE, PAYLOAD_ANY, 10000));
112110
registerClasses(registerClasses());
113111
instanserSwagger();
114112
}
115113

116114
private void instanserSwagger() {
117115
var oas = new OpenAPI();
118-
var info = new Info()
119-
.title("VTP - Virtuell Tjeneste Plattform")
120-
.version("1.0")
121-
.description("REST grensesnitt for VTP.");
116+
var info = new Info().title("VTP - Virtuell Tjeneste Plattform").version("1.0").description("REST grensesnitt for VTP.");
122117

123118
oas.info(info).addServersItem(new Server().url("/"));
124119
var oasConfig = new SwaggerConfiguration().openAPI(oas)
@@ -127,7 +122,7 @@ private void instanserSwagger() {
127122
try {
128123
new GenericOpenApiContextBuilder<>().openApiConfiguration(oasConfig).buildContext(true).read();
129124
} catch (OpenApiConfigurationException e) {
130-
throw new RuntimeException("OPEN-API", e);
125+
throw new IllegalStateException("OPEN-API", e);
131126
}
132127
}
133128

@@ -166,10 +161,8 @@ public static Set<Class<?>> registerClasses() {
166161
classes.add(FpWsProxyTilbakekrevingMock.class);
167162

168163
// tekniske ting
169-
classes.add(OpenAMRestService.class);
170-
classes.add(AADRestTjeneste.class);
171-
classes.add(EnkelAADRestTjeneste.class);
172-
classes.add(LoginserviceLoginTjeneste.class);
164+
classes.add(AzureAdRestTjeneste.class);
165+
classes.add(IdportenLoginTjeneste.class);
173166
classes.add(MicrosoftGraphApiMock.class);
174167
classes.add(STSRestTjeneste.class);
175168
classes.add(PdpRestTjeneste.class);
@@ -223,14 +216,15 @@ protected void configure() {
223216
@Provider
224217
@Produces(MediaType.APPLICATION_JSON)
225218
public static class JacksonConfigResolver implements ContextResolver<ObjectMapper> {
226-
private static final ObjectMapper objectMapper = new ObjectMapper();
219+
private final ObjectMapper objectMapper = JsonMapper.builder()
220+
.addModules(new Jdk8Module(), new JavaTimeModule())
221+
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
222+
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
223+
.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)
224+
.build();
227225

228226
public JacksonConfigResolver() {
229-
objectMapper.registerModule(new Jdk8Module());
230-
objectMapper.registerModule(new JavaTimeModule());
231-
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
232-
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
233-
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
227+
//CDI
234228
}
235229

236230
@Override
@@ -285,13 +279,17 @@ public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, An
285279
public static class LocalDateStringConverter implements ParamConverter<LocalDate> {
286280
@Override
287281
public LocalDate fromString(String s) {
288-
if (s == null) return null;
282+
if (s == null) {
283+
return null;
284+
}
289285
return LocalDate.parse(s, DateTimeFormatter.ISO_LOCAL_DATE);
290286
}
291287

292288
@Override
293289
public String toString(LocalDate localDate) {
294-
if (localDate == null) return null;
290+
if (localDate == null) {
291+
return null;
292+
}
295293
return localDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
296294
}
297295
}
@@ -300,19 +298,14 @@ public String toString(LocalDate localDate) {
300298
public static class CorsFilter implements ContainerResponseFilter {
301299

302300
@Override
303-
public void filter(ContainerRequestContext requestContext,
304-
ContainerResponseContext responseContext) throws IOException {
305-
responseContext.getHeaders().add(
306-
"Access-Control-Allow-Origin", "*");
307-
responseContext.getHeaders().add(
308-
"Access-Control-Allow-Credentials", "true");
309-
responseContext.getHeaders().add(
310-
"Access-Control-Allow-Headers",
311-
"content-type, pragma, accept, expires, accept-language, cache-control, accepted-encoding, x-requested-with, " +
312-
"host, origin, content-length, user-agent, referer, connection, cookie, nav-callid, authorization");
313-
responseContext.getHeaders().add(
314-
"Access-Control-Allow-Methods",
315-
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
301+
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
302+
responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
303+
responseContext.getHeaders().add("Access-Control-Allow-Credentials", "true");
304+
responseContext.getHeaders()
305+
.add("Access-Control-Allow-Headers",
306+
"content-type, pragma, accept, expires, accept-language, cache-control, accepted-encoding, x-requested-with, "
307+
+ "host, origin, content-length, user-agent, referer, connection, cookie, nav-callid, x_nav-callid, authorization");
308+
responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
316309
}
317310
}
318311
}

server/src/main/java/no/nav/foreldrepenger/vtp/server/MockServer.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class MockServer {
4444
private static final String TRUSTSTORE_PATH_PROP = "javax.net.ssl.trustStore";
4545
private static final String KEYSTORE_PASSW_PROP = "no.nav.modig.security.appcert.password";
4646
private static final String KEYSTORE_PATH_PROP = "no.nav.modig.security.appcert.keystore";
47+
public static final String CONTEXT_PATH = System.getProperty("server.context.path", "/rest");
4748

4849
private final int port;
4950
private final LdapServer ldapServer;
@@ -124,7 +125,7 @@ private void addRestServices(DelegatingTestscenarioRepository testScenarioReposi
124125
kafkaServer.getKafkaAdminClient(),
125126
journalRepository);
126127

127-
var context = new ServletContextHandler(handler, "/rest");
128+
var context = new ServletContextHandler(handler, CONTEXT_PATH);
128129
var jerseyServlet = new ServletHolder(new ServletContainer(config));
129130
jerseyServlet.setInitOrder(1);
130131
context.addServlet(jerseyServlet, "/*");

server/src/main/java/no/nav/foreldrepenger/vtp/server/auth/rest/AzureOidcTokenGenerator.java

-109
This file was deleted.

0 commit comments

Comments
 (0)