Fiks IO java klient
Klient for å bruke Fiks IO i et JVM miljø
Ta i bruk
Forutsetninger
- Java 1.8 eller høyere
Maven
Legg til følgende i POM-filen din:
<dependencies>
<dependency>
<groupId>no.ks.fiks</groupId>
<artifactId>fiks-io-klient-java</artifactId>
<version>1.2.23</version>
</dependency>
</dependencies>
Bruk
final FiksIOKonfigurasjon fiksIOKonfigurasjon = FiksIOKonfigurasjon.builder()
// sett konfig
.build();
final FiksIOKlientFactory fiksIOKlientFactory = new FiksIOKlientFactory(fiksIOKonfigurasjon);
final FiksIOKlient fiksIOKlient = fiksIOKlientFactory.build();
// Lytte på meldinger
fiksIOKlient.newSubscription((motattMelding, svarSender) -> {
// Gjør noe med mottatt melding
});
// Slå opp konto
final Optional<Konto> fiksIoKonto = fiksIOKlient.lookup(...);
// Sende melding
final SendtMelding sendtMelding = fiksIoKonto.map(konto -> fiksIOKlient.send(...)).orElseThrow(() -> new IllegalStateException("Kunne ikke sende til Fiks IO"));
Konfigurasjon av klienten
For å konfigurere klienten, trengs en instans av FiksIOKonfigurasjon
. Den har en tilhørende builder som kan benyttes til å angi all konfigurasjon. Eksempel:
FiksIoKonfigurasjon konfigurasjon = FiksIOKonfigurasjon.builder()
.fiksApiKonfigurasjon(FiksApiKonfigurasjon.builder()
.host("api.fiks.ks.no")
.port(443)
.scheme("https")
.build())
.amqpKonfigurasjon(AmqpKonfigurasjon.builder()
.host("io.fiks.ks.no")
.port(5671)
.build())
// Resten av konfigurasjonen...
.build();
For å gjøre det enklere å sette opp standard konfigurasjon for test og prod miljøene, finnes det i tillegg to funksjoner defaultProdConfiguration
og defaultTestConfiguration
for å lage default konfigurasjon. Påkrevde felter angis som argument, slik:
final FiksIOKonfigurasjon fiksIOKonfigurasjon = FiksIOKonfigurasjon.defaultProdConfiguration(
clientId,
integrationId,
integrationPassword,
KontoKonfigurasjon.builder()
.kontoId(new KontoId(kontoId))
.privatNokkel(privateKey)
.build(),
VirksomhetssertifikatKonfigurasjon.builder()
.keyAlias(keyAlias)
.keyPassword(keyPassword)
.keyStore(keyStore)
.keyStorePassword(keyStorePassword)
.build());
Konfigurasjon av Offentlig Nøkkel for mottaker
Ved oppsett av Fiks IO klienten kan man velge om man vil sette opp en egen metode for å hente offentlig nøkkel til mottaker av meldinger. Man må da lage en egen implementasjon av PublicKeyProvider
med metoden X509Certificate getPublicKey(final KontoId kontoId)
. Altså gitt en KontoId
skal den returnere en nøkkel som skal benyttes ved sending av meldinger til den kontoen. En instans av denne implementasjonen angis som argument til FiksIOKlientFactory
slik: public FiksIOKlientFactory(@NonNull FiksIOKonfigurasjon fiksIOKonfigurasjon, @NonNull PublicKeyProvider publicKeyProvider)
Om man ikke angir en egen implemtasjon av PublicKeyProvider
, vil klienten bli satt opp med en instans av KatalogPublicKeyProvider
som vil hente offentlig nøkkel fra katalogtjenesten. Man kaller da konstruktøren til FiksIOKlientFactory med kun 1 argument slik: public FiksIOKlientFactory(@NonNull FiksIOKonfigurasjon fiksIOKonfigurasjon)