Uke 5 - JWT
Timer
Denne uken: 36
Totalt: 177 đ
Fredag
Fredag ble brukt til Ä vÊre med en av testerne pÄ teamet mitt til en gjennomgang av Kreditt lÞsningen. Siden jeg nÄ jobber pÄ KredittTeam var det pÄ tide Ä fÄ en gjennomgang av hvordan lÞsningen fungerer. Jeg har jo tidligere holdt pÄ med andre prosjekter som ikke er sÄ relevant i forhold til det KredittTeam faktisk jobber med. Vi har nettopp tatt en cut fra master hvor vi skal levere en ny versjon til Eika. Det er denne som nÄ skal regresjonstestes, jeg holder pÄ med en oppgave hvor det er en merkelig bug. Men pÄ grunn av jeg ikke har domene kunnskapen om lÞsningen enda har det vÊrt vanskelig, derfor slenger jeg meg med nÄr en av testerne pÄ teamet skal gÄ i gang.
I lÞpet av en liten halvtime nÄr jeg tar trykket litt rundt og blitt forklart hva dette handler om, finner jeg i tillegg til den buggen jeg jobber med, fire andre problemer som blir til to saker. SÄ her blir det mer jobb til mandag.
Onsdag og Torsdag
Jeg har jobbet med Ä fÄ satt opp pipeline til JWT prosjeket. Prosjektet bestÄr av ett webprosjekt (war) og fire bibliotek. Webprosjektet skal bygges i Jenkins, ogsÄ skal Bitbucket Pipeline lytte pÄ en tag og deretter bygge Docker image og pushe det til Azure Container Registry. Bibliotekene skal bli publisert til Azure Artifacts pÄ hver commit.
Siden dette er ett monoprosjekt. Er det Þnskelig at kun de modulene som blir pÄvirket/ har en endring, er de som blir oppdatert. SÄ her mÄtte det litt bash programmering til.
Ett fint eksempel pÄ Ä sjekke om det er gjort noe endringer i en mappe eller en fil mellom de to siste commitene, og kun printe ut filnavnene, ser slik ut:
git diff --name-only --diff-filter=AMDR HEAD^ HEAD <fil eller mappenavn>
OgsÄ mÄtte jeg ogsÄ finne alle undermapper med en pom.xml
fil, som jeg kan putte inn i funksjonen over:
find . -name pom.xml -print0 | xargs -0 -n1 dirname rm | sort --unique | sed "s|^\./||" | tr '\n' ' ' | sed 's/^.\{2\}//'
Kommandoen over vil returnere en streng med alle undermapper som inneholder en pom.xml
fil, hvor de er skilt med mellomrom. Det funker bra for en tabell i bash blir elementene skilt med mellomrom array=(el1 el2 el3 el4)
Jeg gjorde ogsÄ en endring med i stedet for Ä endre vÄr Parent POM til Ä samhandle med Azure (som gjÞr at vi mÄ endre alle gamle moduler). Lager jeg nÄ en Azure POM, som er konfigurert til Ä snakke med Azure Artifacts, og oppdaterer heller de bibliotekene / modulene som skal bli flyttet med denne nye Parent POM'en.
Tirsdag
Litt diverse aktiviteter i dag, men hovedtrekkene var at Veien mot Skyene prosjetet er satt litt pÄ is. Jeg begynte Ä sette meg inn i ett nytt prosjekt kalt JWT - Sikkerhet, som handler om Ä bytte ut en eldre selvutviklet sikkerhetslÞsning med OpenID Connect.
OpenID Connect er ett lettvektig identitets lag over OAuth 2.0 protokollen. Dette er har vi implementert med Spring Boot 2. OAuth 2.0 bruker JSON Web Tokens (JWT) som er en Äpen industri standard for Ä representere krav sikkert mellom to parter.
$ jwt decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Token header
------------
{
"typ": "JWT",
"alg": "HS256"
}
Token claims
------------
{
"iat": 1516239022,
"name": "John Doe",
"sub": "1234567890"
}
En mer abstrakt oversikt over flyten gjennom en OAuth autentisering.
Jeg brukte dagen for Ä sette opp prosjeket lokalt pÄ maskinen, og begynne Ä sette opp Bitbucket Pipeline sÄ artefaktene kan bli deployet til Azure Artifacts. Hvor mye jeg kommer til Ä jobbe med dette prosjeket er litt usikkert, siden prosjektet er i sluttfasen.
Mandag
I dag fikk endelig utviklerne tilgang til Azure Artifacts og kan begynne Ă„ bruke de nyeste versjonen av bibliotekene som blir bygget ut til Azure Artifacs via Bitbucket Pipelines.
Jeg skulle egentlig ha ett mÞte med arkitektene om Veien til Skyen prosjektet. NÄ er det pÄ tide Ä fÄ svar pÄ en del viktige spÞrsmÄl rundt Kubernetes i produksjon, hvordan vi skal hÄndtere deployments og releases, hvilke veier Þnsker vi Ä gÄ videre, hvilke milepÊler har vi nÄdd, hvilke moduler skal vi velge som neste til Ä bli deployet til Kubernetes osv (ulik kompleksitet, avhengingheter, database tilkobling osv...).
Det mÞtet ble det ikke noe av pÄ grunn av andre ting som haster mer i teamet. Derfor brukte jeg dagen pÄ Ä gjÞre litt research rundt bacheloroppgaven. Jeg prÞvde Ä grave frem gammel dokumentasjon som brukerhistorier, illustrasjoner og funksjonelle krav til en klient som vi kaller "Planer". En del av innholdet til "Planer" klienten er sentral i bacheloroppgaven, sÄ det hadde vÊrt greit for bÄde meg og de andre i gruppen Ä fÄ litt bakgrunnstoff.
PÄ slutten av dagen hadde jeg ett mÞte med bachelorgruppen min, Preben HaukebÞ og Arne Flatekval. FormÄlet med mÞte var Ä fÄ spesifisert nÞyere hva vi Þnsker Ä lage, og de tekniske utfordringene vi stÄr ovenfor.