package Ġno . nav . g and alf . api Ċ Ċ import Ġcom . fasterxml . jackson . module . kotlin . readValue Ċ import Ġno . nav . g and alf . SpringBoot Wire Mock Setup Ċ import Ġno . nav . g and alf . utils . GRANT _ TYPE Ċ import Ġno . nav . g and alf . utils . OID C _ TOKEN _ VALIDATE Ċ import Ġno . nav . g and alf . utils . SAML _ TOKEN Ċ import Ġno . nav . g and alf . utils . SAML _ TOKEN _ VALIDATE Ċ import Ġno . nav . g and alf . utils . SCOPE Ċ import Ġno . nav . g and alf . utils . TOKEN Ċ import Ġno . nav . g and alf . utils . TOKEN _ SUBJECT Ċ import Ġno . nav . g and alf . utils . TOKEN _ TYPE Ċ import Ġno . nav . g and alf . utils . get Datap ower SAML Base 6 4 Encoded Ċ import Ġno . nav . g and alf . utils . get Open Am OID C Ċ import Ġno . nav . security . mock . oauth 2 . http . object Mapper Ċ import Ġorg . junit . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . web . servlet . Auto Configure MockMvc Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . security . test . web . servlet . request . Security MockMvc Request Post Processors Ċ import Ġorg . springframework . test . annotation . Dir ties Context Ċ import Ġorg . springframework . test . context . Active Profiles Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . json Path Ċ Ċ @ Auto Configure MockMvc Ċ @ Active Profiles (" test ") Ċ @ Dir ties Context Ċ class ĠToken Info Controller Test Ġ: ĠSpring Boot Wire Mock Setup () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm vc : ĠMock Mvc ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Validate ĠValid ĠSAML ĠToken `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . get ( SAML _ TOKEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. access _ token "). isString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. token _ type "). value ( TOKEN _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. iss ued _ token _ type "). value (" urn : ietf : params : oauth : token - type : saml 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. expires _ in "). isNumber ). andReturn () ĊĊĠĠĠĠĠĠĠ Ġval Ġmocked Token Ġ= ĠobjectMapper . readValue < Mock Token Test >( result . response . content AsString ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ( SAML _ TOKEN _ VALIDATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( TOKEN _ SUBJECT , Ġmocked Token . access _ token ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. status "). value ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Validate ĠExp ired ĠSAML ĠToken `() Ġ{ ĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ( SAML _ TOKEN _ VALIDATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( TOKEN _ SUBJECT , Ġget Datap ower SAML Base 6 4 Encoded ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. status "). value ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Path (" $. message "). isString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Validate Ġa Ġvalid ĠO IDC ĠToken `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . get ( TOKEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( GRANT _ TYPE , Ġ" client _ credentials ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( SCOPE , Ġ" openid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . header (). string Values (" Cache - Control ", Ġ" no - store ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . header (). string Values (" Pr agma ", Ġ" no - cache ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. access _ token "). isString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. token _ type "). value ( TOKEN _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. expires _ in "). value ( 3 6 0 0 )). andReturn () ĊĊĠĠĠĠĠĠĠ Ġval Ġmocked Token Ġ= ĠobjectMapper . readValue < Mock Token Test >( result . response . content AsString ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ( OID C _ TOKEN _ VALIDATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( TOKEN _ SUBJECT , Ġmocked Token . access _ token ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. status "). value ( true )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Validate ĠExp ired ĠO IDC ĠToken `() Ġ{ ĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMock Mvc Request Builders . post ( OID C _ TOKEN _ VALIDATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( Security MockMvc Request Post Processors . http Basic (" srv P DP ", Ġ" password ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param ( TOKEN _ SUBJECT , Ġget Open Am OID C ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( MockMvc Result Matchers . content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. status "). value ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. message "). value (" Validation Ġfailed : Ġtoken Ġhas Ġexpired ")) ĊĠĠĠ Ġ} Ċ } Ċ