Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Bas-startern bör användas av alla utvecklade tjänster och den innehåller funktionalitet och konfiguration för:

För att förenkla användning inaktiverar startern följande Spring Boot-auto-konfigurationer:

  • org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

  • org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration

För att återaktivera dem kan man i lämplig konfigurationsklass manuellt importera dem, genom t.ex. @Import(SecurityAutoConfiguration.class).

Felhantering

TODO - skriv lite om Problem-biblioteket och RFC7807

RequestId-hantering

TODO

Truststore

Truststore-funktionalitet innebär att man kan skapa en “in-memory”-truststore baserat på SSL-certifikat (i PEM-format). Detta eliminerar behovet av att skapa separata truststore-/keystore filer med hjälp av t.ex. keytool. Det enda som behövs är att lägga certifikatet i katalogen classpath:truststore/.

Truststore används även av “spring-cloud-config-server-client”-funktionaliteten. I det fallet har även ett certifikat till “config-servern” bundlats med dept44-startern. Behovet av att varje klient måste sätta upp en egen truststore-fil för config-serverns SSL-cert är därmed undanröjt.

Inställning

Default-värde

Beskrivning

dept44.truststore.enabled

false

Stänger av eller slår på Truststore

dept44.truststore.path

truststore/*

Anger sökväg till de certifikat klienten lagt till (om inte default-katalogen “truststore/” används)

Loggning

Generell loggning sker med hjälp av SLF4J, t.ex.:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
public class MyClass {
    private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
    ...

    public void doSomething(String s) {
        LOG.debug("Doing something with {}", s);
    }
}

Loggning av trafik, såväl för inkommande och utgående requests och responses sker med hjälp av biblioteket Logbook.

Inställningar
(Auto-konfigurationsklass: se.sundsvall.dept44.configuration.LogbookConfiguration)

Inställning

Default-värde

Beskrivning

logbook.logger.name

se.sundsvall.dept44.payload

Anger den logg-kategori som trafikloggningen ska göras i

logbook.excluded.paths

/,/webjars/**,/v3/api-docs**,/swagger-resources,/swagger-resources/**,/error,/csrf,/swagger-ui.html,/swagger-ui/**,/favicon.ico,/actuator,/actuator/**

Anger de sökvägar som ska exkluderas från trafikloggning

Viktigt att komma ihåg om man sätter om logg-kategorin är att man då även sätter om loggnivån på den konfigurerade loggkategorin till TRACE - om det inte görs kommer ingen trafikloggning att dyka upp i applikationens logg.

Jackson (serialisering/deserialisering av JSON)


Jackson används för serialisering av objekt till JSON och tillbaka - d.v.s. deserialisering av JSON till objekt. Konfigurationen som görs i ramverket innefattar bland annat:

  • null-värden exkluderas vid serialisering

  • den JSON-data som genereras är indenterad, för ökad läsbarhet

  • okända attribut ignoreras vid deserialisering

Inställningar
(Auto-konfigurationsklass: se.sundsvall.dept44.configuration.ObjectMapperConfiguration)

Inställning

Default-värde

Beskrivning

dept44.object-mapper.enabled

true

Används för att aktivera/inaktivera konfigurerad ObjectMapper

OpenAPI och Swagger UI

För att generera OpenAPI v3.x-specifikation och tillhandahålla ett Swagger UI används SpringDoc.

Minimal konfiguration i application.properties:

openapi.name=ett-api
openapi.title=Ett API
openapi.version=1.0

Se nedan för övriga valbara inställningar.

Inställningar

(Auto-konfiguration: se.sundsvall.dept44.configuration.openapi.OpenApiConfiguration)

Inställning

Default-värde

Beskrivning

openapi.name (obligatorisk)

-

Namn som används för att generera URL till API-dokumentation. Får bara innehålla bokstäver, siffror, underscore och bindestreck

openapi.title (obligatorisk)

-

Titel som ska användas i OpenAPI-specifikationen

openapi.version (obligatorisk)

-

Versionsnummer som ska användas i OpenAPI-specifikationen

openapi.license.name

MIT

Namn på den licens som ska ingå i OpenAPI-specifikationen

openapi.license.url

https://opensource.org/licenses/MIT

Länk till den licens som ska ingå i OpenAPI-specifikationen

openapi.contact.name

-

Namnet på den kontakt som ska ingå i OpenAPI-specifikationen

openapi.contact.email

-

E-postadressen till den kontakt som ska ingå i OpenAPI-specifikationen

openapi.contact.url

-

URL för den kontakt som ska ingå i OpenAPI-specifikationen

openapi.security-scheme.oauth2.flow.tokenUrl

-

TODO

openapi.servers[n].url

-

TODO

openapi.servers[n].description

-

TODO

openapi.extensions.<extension>.... (Map)

-

Eventuella tillägg till OpenAPI-specifikationen

(se https://swagger.io/docs/specification/openapi-extensions/)

use-generated-index-html

true

Anger om en genererad index.html med länkar till Swagger UI, OpenAPI-specifikation som JSON/YAML och actuators ska användas

  • No labels