fiks-maskinporten-spring-boot-client


License

License

Categories

Categories

Spring Boot Container Microservices CLI User Interface
GroupId

GroupId

no.ks.fiks
ArtifactId

ArtifactId

fiks-maskinporten-spring-boot-client
Last Version

Last Version

1.0.4
Release Date

Release Date

Type

Type

jar
Description

Description

fiks-maskinporten-spring-boot-client
fiks-maskinporten-spring-boot-client

Download fiks-maskinporten-spring-boot-client

How to add to project

<!-- https://jarcasting.com/artifacts/no.ks.fiks/fiks-maskinporten-spring-boot-client/ -->
<dependency>
    <groupId>no.ks.fiks</groupId>
    <artifactId>fiks-maskinporten-spring-boot-client</artifactId>
    <version>1.0.4</version>
</dependency>
// https://jarcasting.com/artifacts/no.ks.fiks/fiks-maskinporten-spring-boot-client/
implementation 'no.ks.fiks:fiks-maskinporten-spring-boot-client:1.0.4'
// https://jarcasting.com/artifacts/no.ks.fiks/fiks-maskinporten-spring-boot-client/
implementation ("no.ks.fiks:fiks-maskinporten-spring-boot-client:1.0.4")
'no.ks.fiks:fiks-maskinporten-spring-boot-client:jar:1.0.4'
<dependency org="no.ks.fiks" name="fiks-maskinporten-spring-boot-client" rev="1.0.4">
  <artifact name="fiks-maskinporten-spring-boot-client" type="jar" />
</dependency>
@Grapes(
@Grab(group='no.ks.fiks', module='fiks-maskinporten-spring-boot-client', version='1.0.4')
)
libraryDependencies += "no.ks.fiks" % "fiks-maskinporten-spring-boot-client" % "1.0.4"
[no.ks.fiks/fiks-maskinporten-spring-boot-client "1.0.4"]

Dependencies

compile (3)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.18.4
no.ks.fiks : fiks-maskinporten-client jar 1.0.4
no.ks.fiks : fiks-virksomhetssertifikat jar 1.0.9

Project Modules

There are no modules declared in this project.

maskinporten-client

Maven Central GitHub

Dette er en klient som kobler seg opp til Maskinporten (https://difi.github.io/idporten-oidc-dokumentasjon/oidc_auth_server-to-server-oauth2.html) og ber om en JWT-access-token basert på et virksomhetssertifikat, en issuer (konto hos Difi) og ett eller flere scopes.

Husk å be Difi konfigurere opp klienten til å sende JWT-access-token og ikke "token by reference".

Mottatte access-token blir lagret i en cache og vil bli gjenbrukt frem til de utløper. Det er mulig å fjerne access-tokenet fra cachen før det utløper og blir ugyldig. Dette er nyttig dersom det gjøres en forespørsel rett før tokenet utløper og det er fare for at tokenet blir ugyldig før forespørselen sendes. Konfigurasjon gjøres ved initiering av klienten og styres i feltet "numberOfSecondsLeftBeforeExpire".

Maven koordinater

        <dependency>
            <groupId>no.ks.fiks</groupId>
            <artifactId>maskinporten-client</artifactId>
            <version>1.0.16</version>
        </dependency>

Eksempel

import no.ks.fiks.maskinporten.Maskinportenklient;
import no.ks.fiks.maskinporten.MaskinportenklientProperties;

import java.io.FileInputStream;
import java.io.IOException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;

public class Application {

    public static void main(String[] args) throws Exception {
        String keyStoreFilename = "virksomhetssertifikat-auth.p12";
        char[] keyStorePassword = "passord".toCharArray();
        KeyStore keyStore = getKeyStore(keyStoreFilename, keyStorePassword);

        Maskinportenklient maskinporten = new Maskinportenklient(keyStore, "authentication certificate", keyStorePassword, MaskinportenklientProperties.builder()
                .numberOfSecondsLeftBeforeExpire(10)
                .issuer("<klient-id-utdelt-av-difi>")
                .audience("https://oidc-ver2.difi.no/idporten-oidc-provider/")
                .tokenEndpoint("https://oidc-ver2.difi.no/idporten-oidc-provider/token")
                .build());

        String accessToken = maskinporten.getAccessToken("ks:fiks");
        System.out.println("accessToken = " + accessToken);
    }

    private static KeyStore getKeyStore(String keyStoreFilename, char[] keyStorePassword) throws KeyStoreException, IOException, CertificateException, NoSuchAlgorithmException {
        KeyStore keyStore = KeyStore.getInstance("pkcs12");
        keyStore.load(new FileInputStream(keyStoreFilename), keyStorePassword);
        return keyStore;
    }

}

maskinporten-spring-boot-client

Autokonfigurasjon av maskinporten for Spring Boot.

Maven koordinater

        <dependency>
            <groupId>no.ks.fiks</groupId>
            <artifactId>maskinporten-spring-boot-client</artifactId>
            <version>1.0.15</version>
        </dependency>

Eksempel

    @Bean
    public KontaktOgReservasjonsregisteretApi getKontaktOgReservasjonsregisteretApi(Maskinportenklient maskinportenklient) {
        return new KontaktOgReservasjonsregisteretApi(maskinportenklient);
    }

Konfigurasjon - application.yaml

virksomhetsertifikat.sertifikater:
- sertifikat-type: AUTH
  keystore-password: <KEYSTORE_PASSWORD>
  keystore-path: <KEYSTORE_PATH>
  certificate-alias: <CERTIFICATE_ALIAS>
  private-key-alias: <PRIVATE_KEY_ALIAS>
  private-key-password: <PRIVATE_KEY_PASSWORD>

maskinporten:
  audience: <AUDIENCE>
  tokenEndpoint: <TOKEN_ENDPOINT>
  issuer: <ISSUER>
  numberOfSecondsLeftBeforeExpire: <NUMBER_OF_SECOUNDS>

I fra versjon 1.0.16 er det også mulig å oppgi "consumerOrg" dersom man skal opptre på vegne av en annen aktør (delegering). Settes i så fall til orgnr til aktør man skal opptre på vegne av. Krever også at oppgitt Maskinporten scope er satt opp til å kreve dette.

no.ks.fiks

KS

Versions

Version
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0