Skip to content

Eriilisen sovelluksen asennus

Järjestelmävaatimukset

Java 17 tai uudempi

Kääntäminen

Sovellus tulee kääntää erikseen spring-boot-hakemistossa.

Luo konfiguraatiotiedosto

Luo tiedosto application.yml ja määrittele vivulla --spring.config.location=/<koko polku>/api-application.yml sen sijainti.

Kopioi Java key store (api-application-keystore.pfx) Peppi Karaf asennuksesta.

spring:
  application:
    name: Api Application
  datasource:
    driver-class-name: org.mariadb.jdbc.Driver
    url: jdbc:mysql://localhost/test
    username: dbuser
    password: dbpass

server:
  port: 8080
  internal:
    port: 8081

api:
  keystore:
    file: <polku minne on kopioitu>/keystore.pfx
    password: <salasana>
  security:
    # Oletus on EC, voi olla myös RSA. tulee olla sama kuin karafin /etc/api_application.properties tiedostossa
    keyPairAlgorithm: EC
  cache:
    endpoint:
      # Kauan sallitut REST APIt pidetään välimuistissa, oletus on 30 s.
      timeoutInSeconds: 30
    jwt:
      # Tämä määrittelee kauanko JWT muutokset kestää ennen kuin tulevat voimaan.
      # JWT tarkastajan luonti on raskas operaatio joten tuotannossa laita isoksi esim. yksi tunti (3600).
      # Hätätapauksessa voit tyhjentää välimuistin uudelleen käynnistämällä Rajapintasovelluksen.
      # Oletus on 600
      verifierInSeconds: 600
  rest:
    # Oletus on 180
    timeoutInSec: 180
    pathPrefix: internal-api
    headers:
      # Sallitut headerit integraatiolta ja jotka välitetään Pepiltä eteenpäin
      # Huom, tulee olla pilkulla eroteltu list 
      allowed:
        Accept,
        Accept-Charset,
        Accept-Encoding,
        Accept-Language,
        Accept-Patch,
        Accept-Ranges,
        Age,
        Cache-Control,
        Content-Encoding,
        Content-Language,
        Content-Location,
        Content-Type,
        ETag,
        Expires,
        If-Match,
        If-Modified-Since,
        If-None-Match,
        If-Range,
        If-Unmodified-Since,
        Last-Modified,
        Location,
        Range,
        ESP-Language,
        ESP-ScreenName
    parameters:
      excluded:
        # TODO Tarvitaan jos api-key voi tulla parametrina  
        # api-key
peppi:
  baseUrl: http://localhost:8181/api
  # oletus on peppi.admin
  screenname: peppi.admin

# Kuten Pepin opensearch.properties, kts. https://wiki.metropolia.fi/pages/viewpage.action?pageId=300384355
opensearch:
  url:
    scheme: http
    host: node1-cluster1
    port: 9200
  auth:
    username: <käyttäjätunnus>
    password: <salasana>

Swagger / OpenAPI

Swagger ei vaadi API avainta joten suositeltavaa on asentaa se nginx basic auth taakse.

Swagger saa päälle seuraavasti:

springdoc:
  writer-with-default-pretty-printer: true
  swagger-ui:
    enabled: true

Swagger ja reverse proxy

Jos Rajapintasovellus on reverse proxyn takana, Swagger osoitteet saa muutettua seuraavasti.

springdoc:
  swagger-ui:
    # Muuta Swagger URL /swagger-ui/index.html --> /integration/swagger-ui/index.html
    path: /integration/swagger-ui
  api-docs:
    # Muuta Open Api URL /v3/api-docs --> /integration/v3/api-docs
    path: /integration/v3/api-docs