Ett test som kontrollerar att det går att logga in med idpLogin

Included page: .SuiteSetUp (edit)

Setup import and scripts

import
se.uu.ub.cora.fitnesseintegration
se.uu.ub.cora.fitnesseintegration.apptoken.script
se.uu.ub.cora.fitnesseintegration.authtoken.fixture
se.uu.ub.cora.fitnesseintegration.file
se.uu.ub.cora.fitnesseintegration.compare
se.uu.ub.cora.fitnesseintegration.script
se.uu.ub.cora.fitnesseintegration.waiter.fixture
se.uu.ub.cora.fitnesseintegration.server.compare.fixtures
se.uu.ub.cora.fitnesseintegration.binary
se.uu.ub.diva.cora.fitnesse

script SystemUrl
setUrl http://diva:8080/diva/
setAppTokenVerifierUrl http://login:8080/login/
setIdpLoginUrl http://idplogin:8080/idplogin/
setGatekeeperServerUrl http://gatekeeper:8080/gatekeeperserver/

script DependencyProvider
setHttpHandlerFactoryClassName se.uu.ub.cora.httphandler.HttpHandlerFactoryImp
setChildComparerUsingClassName se.uu.ub.cora.fitnesseintegration.ChildComparerImp
setComparerFactoryUsingClassName se.uu.ub.cora.fitnesseintegration.compare.ComparerFactoryImp


Import classes through pom.xml

Maven classpath [file: ./pom.xml, scope: test]:

  • Unable to parse POM file: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Guice provision errors: 1) No implementation for org.apache.maven.repository.RepositorySystem was bound. while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] while locating org.apache.maven.execution.MavenExecutionRequestPopulator 1 error role: org.apache.maven.execution.MavenExecutionRequestPopulator roleHint:


Contents:

IdpLoginTest

IdpLogin skyddas i test och produktion av inställningar i webservern Apache och är inte åtkomligt utan en godkänd inloggning mot en lokal idp. Vi förväntar oss att parametern eppn är med när användaren släpps förbi Apache och får tillgång till idpLogin servern. Parametern eppn skickas vidare till gatekeeperServer som letar i databasen efter en användare som matchar denna eppn. I användaren finns inte fältet eppn, utan det är fältet "userId" från användaren som är sparad genom en storageTerm som är det värde som används för att matcha eppn:en. Gatekeeper returnerar en authtoken för användaren och sparar användaren som inloggad. Om ingen matchande användare hittas så skapas och returneras en authToken för systemets gästanvändare.


Login for DiVA example users

Hämta authTokens från idpLogin server

IdpLoginServletFixture
EPPN getAuthTokenForEPPN? getIdFromLogin? getResponseCode? getAuthToken? getValidForNoSeconds? getDeleteUrl?
fitnesseSystemAdmin@user.uu.se fitnesseSystemAdmin@user.uu.se OK $systemAdminAuthToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/coraUser:542161975513761
fitnesseDomainAdminUU@user.uu.se fitnesseDomainAdminUU@user.uu.se OK $domainAdminUUAuthToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/coraUser:542165753711000
fitnesseDomainAdminKTH@user.kth.se fitnesseDomainAdminKTH@user.kth.se OK $domainAdminKTHAuthToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/coraUser:542168680454562
userNotInDb@user.uu.se null OK $guestToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/coraUser:5368656924943436


Hämta authTokens via idpLogin

Hämta authTokens från idpLogin server

Comment
IdpLoginServletFixture
EPPN getAuthTokenForEPPN? getIdFromLogin? getResponseCode? getAuthToken? getValidForNoSeconds? getDeleteUrl?
fitnesseAdminDb@user.test.se fitnesseAdminDb@user.test.se OK $adminAuthToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/62
fitnesseUserDb@user.test.se fitnesseUserDb@user.test.se OK $userAuthToken= https://cora.epc.ub.uu.se/diva/login/rest/authToken/63
userNotInDb@user.uu.se OK https://cora.epc.ub.uu.se/diva/login/rest/authToken/coraUser:5368656924943436

Uppdatera en organisation

Uppdatera organisation 1450 med nytt namn


comment
RecordEndpointFixture
authToken type id json testUpdateRecord? getStatusType?
$adminAuthToken divaOrganisation 1450 {"children":[{"children":[{"name":"id","value":"1450"},{"children":[{"name":"linkedRecordType","value":"recordType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"type"},{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"createdBy"},{"children":[{"name":"linkedRecordType","value":"system"},{"name":"linkedRecordId","value":"diva"}],"name":"dataDivider"},{"name":"tsCreated","value":"2017-01-01T00:00:00.000000Z"},{"repeatId":"0","children":[{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"updatedBy"},{"name":"tsUpdated","value":"2017-01-01T00:00:00.000000Z"}],"name":"updated"},{"children":[{"name":"linkedRecordType","value":"validationType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"validationType"}],"name":"recordInfo"},{"children":[{"name":"organisationName","value":"Norska ministerrådet"},{"name":"language","value":"sv"}],"name":"name"},{"children":[{"name":"organisationName","value":"Nordiska ministerrådet"},{"name":"language","value":"en"}],"name":"alternativeName"},{"name":"domain","value":"norden"},{"name":"country","value":"SE"},{"name":"URL","value":"http://www.norden.org"},{"name":"organisationType","value":"unit"},{"name":"organisationNumber","value":"3333333333"},{"name":"eligible","value":"yes"},{"name":"showInDefence","value":"no"},{"name":"topLevel","value":"no"},{"name":"showInPortal","value":"no"}],"name":"organisation"} OK

Läs organisation 1450 igen för att se att den är uppdaterad


comment
RecordEndpointFixture
authToken type id testReadRecord? getStatusType?
$adminAuthToken divaOrganisation 1450 =~/"value":"Norska ministerrådet"/ OK

Återställ ursprunglig organisation 1450


comment
RecordEndpointFixture
authToken type id json testUpdateRecord? getStatusType?
$adminAuthToken divaOrganisation 1450 {"children":[{"children":[{"name":"id","value":"1450"},{"children":[{"name":"linkedRecordType","value":"recordType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"type"},{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"createdBy"},{"children":[{"name":"linkedRecordType","value":"system"},{"name":"linkedRecordId","value":"diva"}],"name":"dataDivider"},{"name":"tsCreated","value":"2017-01-01T00:00:00.000000Z"},{"repeatId":"0","children":[{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"updatedBy"},{"name":"tsUpdated","value":"2017-01-01T00:00:00.000000Z"}],"name":"updated"},{"children":[{"name":"linkedRecordType","value":"validationType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"validationType"}],"name":"recordInfo"},{"children":[{"name":"organisationName","value":"Nordiska ministerrådet"},{"name":"language","value":"sv"}],"name":"name"},{"children":[{"name":"organisationName","value":"Nordiska ministerrådet"},{"name":"language","value":"en"}],"name":"alternativeName"},{"name":"domain","value":"norden"},{"name":"country","value":"SE"},{"name":"URL","value":"http://www.norden.org"},{"name":"organisationType","value":"unit"},{"name":"organisationNumber","value":"3333333333"},{"name":"eligible","value":"yes"},{"name":"showInDefence","value":"no"},{"name":"topLevel","value":"no"},{"name":"showInPortal","value":"no"}],"name":"organisation"} OK

Logout


comment
AppTokenEndpointFixture
userId authTokenToLogOut removeAuthTokenForUser? getStatusType?
62 $adminAuthToken OK

Prova att uppdatera en organisation för att visa att authToken inte är giltig efter utloggning

Uppdatera organisation 1450 med nytt namn


Comment
RecordEndpointFixture
authToken type id json testUpdateRecord? getStatusType?
$adminAuthToken divaOrganisation 1450 {"children":[{"children":[{"name":"id","value":"1450"},{"children":[{"name":"linkedRecordType","value":"recordType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"type"},{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"createdBy"},{"children":[{"name":"linkedRecordType","value":"system"},{"name":"linkedRecordId","value":"diva"}],"name":"dataDivider"},{"name":"tsCreated","value":"2017-01-01T00:00:00.000000Z"},{"repeatId":"0","children":[{"children":[{"name":"linkedRecordType","value":"user"},{"name":"linkedRecordId","value":"coraUser:4412982402853626"}],"name":"updatedBy"},{"name":"tsUpdated","value":"2017-01-01T00:00:00.000000Z"}],"name":"updated"},{"children":[{"name":"linkedRecordType","value":"validationType"},{"name":"linkedRecordId","value":"divaOrganisation"}],"name":"validationType"}],"name":"recordInfo"},{"children":[{"name":"organisationName","value":"Norska ministerrådet"},{"name":"language","value":"sv"}],"name":"name"},{"children":[{"name":"organisationName","value":"Nordiska ministerrådet"},{"name":"language","value":"en"}],"name":"alternativeName"},{"name":"domain","value":"norden"},{"name":"country","value":"SE"},{"name":"URL","value":"http://www.norden.org"},{"name":"organisationType","value":"unit"},{"name":"organisationNumber","value":"3333333333"},{"name":"eligible","value":"yes"},{"name":"showInDefence","value":"no"},{"name":"topLevel","value":"no"},{"name":"showInPortal","value":"no"}],"name":"organisation"} UNAUTHORIZED