@startuml(id=SignIn)
title API Application - Dynamic
caption Summarises how the sign in feature works in the single-page application.

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
skinparam sequenceParticipant<<12>> {
  BackgroundColor #85bbf0
  FontColor #000000
  BorderColor #5D82A8
}
skinparam sequenceParticipant<<15>> {
  BackgroundColor #85bbf0
  FontColor #000000
  BorderColor #5D82A8
}
skinparam sequenceParticipant<<18>> {
  BackgroundColor #438dd5
  FontColor #ffffff
  BorderColor #2E6295
}
skinparam sequenceParticipant<<8>> {
  BackgroundColor #438dd5
  FontColor #ffffff
  BorderColor #2E6295
}
participant "Single-Page Application\n<size:10>[Container: JavaScript and Angular]</size>" as 8 <<8>> #438dd5
participant "Sign In Controller\n<size:10>[Component: Spring MVC Rest Controller]</size>" as 12 <<12>> #85bbf0
participant "Security Component\n<size:10>[Component: Spring Bean]</size>" as 15 <<15>> #85bbf0
database "Database\n<size:10>[Container: Oracle Database Schema]</size>" as 18 <<18>> #438dd5
8 -[#707070]> 12 : 1. Submits credentials to
12 -[#707070]> 15 : 2. Calls isAuthenticated() on
15 -[#707070]> 18 : 3. select * from users where username = ?
@enduml