package Ġorg . ion project . core . access Control Ċ Ċ import Ġorg . ion project . core . common . Uri Ċ import Ġorg . ion project . core . utils . Controller Tester Ċ import Ġorg . ion project . core . utils . read Token Test Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . net . URI Ċ Ċ internal Ġclass ĠAccess Control Test Ġ: ĠController Tester () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġtoken Ġonly Ġallows Ġto ĠGET Ġfrom Ġ"/ program mes " Ġand Ġ"/ program mes /{ id }" ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġread Restricted Token Ġ= Ġ" ODY 0 SX p vc nl HY Ut J bm Fs Z 1 Ry M 0 pv ak J QM 3 ox Y k 0 0 d UQ =" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġinclude Bearer Ġ= Ġ" Bearer " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġinclude Not Bearer Ġ= Ġ" not Bearer " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInvalid Ġtokens ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġun existent Token Ġ= Ġ"$ include Bearer Ġlo l " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġrev oked Token Ġ= Ġ"$ include Bearer ĠS 3 A 5 O EN nd no za V VT c E tt M TI 4 Mj J 0 Ul U wb 3 h 3 Qm R De Hc =" ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġexpired Token Ġ= Ġ"$ include Bearer Ġcz Ix ak l C ck k 0 Vj Z SU j dh aj F 2 WT k zb 1 J NU l Nh Y 0 FG Wm U =" ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠValid Ġtokens Ġ( one Ġof Ġthem Ġhas Ġa Ġwrong Ġinclude Ġtype ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġtoken Correct Ġ= Ġ"$ include Bearer Ġ$ read Restricted Token " ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġtoken Incorrect Ġ= Ġ"$ include Not Bearer Ġ$ read Restricted Token " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUri 's Ġfor Ġtesting Ġaccording Ġto Ġthe Ġtokens Ġscopes ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġnot Found Uri Ġ= ĠURI (" something not found ") ĊĠĠĠĠĠĠĠ Ġval Ġprogram mes Uri Ġ= ĠUri . for Paging Program mes ( 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġprogram mes Detail Uri Ġ= ĠUri . for Program mes ById ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġprogram mes QueryParams Uri Ġ= ĠURI ("/ api / program mes ? page = 1 & limit = 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġcourses Uri Ġ= ĠUri . for Courses () ĊĠĠĠĠĠĠĠ Ġval Ġhome Document Uri Ġ= ĠURI ("/ api ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBecause Ġall Ġrequests Ġpass Ġthrough Ġthe Ġaccess Ġcontrol Ġinterceptor ĊĠĠĠĠ Ġ* ĠI Ġbelieve Ġits Ġimportant Ġto Ġtest Ġif Ġthe Ġbehavior ĊĠĠĠĠ Ġ* Ġof Ġthe Ġnot Ġfound Ġrejected Ġpage Ġis Ġkept ... ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget NotFound Page () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( not Found Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis NotFound () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTesting Ġspecial Ġcase Ġhome Ġdocument ĊĠĠĠĠ Ġ* Ġbecause Ġit Ġdoesn 't Ġhave Ġthe Ġapi Ġversion Ġcomponent ĊĠĠĠĠ Ġ* Ġand Ġthe Ġpolicies Ġhad Ġto Ġbe Ġadapted Ġto Ġallow Ġit . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Home Document () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( home Document Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġread Token Test ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġprogram mes , Ġwith Ġread _ restricted Ġtoken , ĊĠĠĠĠ Ġ* Ġfor Ġsecurity Ġreasons Ġ( being Ġexposed Ġhere ) Ġthis Ġtoken Ġonly Ġallows Ġa ĠGET ĊĠĠĠĠ Ġ* Ġon Ġ"/ program mes " Ġand Ġ"/ program mes /{ id }". ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Program mes () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( program mes Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Program mes Detail () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( program mes Detail Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Program mes QueryParameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( program mes QueryParams Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ries Ġto Ġread Ġfrom Ġresource Ġcourses Ġwith Ġthe ĊĠĠĠĠ Ġ* Ġrestricted Ġto Ġprogram mes Ġtoken . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Courses () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( courses Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Forbidden () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġcourses Ġwith Ġun existent Ġtoken ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Courses With Un existent Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( courses Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġun existent Token ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Unauthorized () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġcourses Ġwith Ġrev oked Ġtoken ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Courses With Rev oked Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( courses Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġrev oked Token ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Unauthorized () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġcourses Ġwith Ġexpired Ġtoken ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Courses With Expired Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( courses Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġexpired Token ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Unauthorized () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPOST Ġto Ġ/ program mes Ġwith Ġread _ restricted Ġtoken ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpost Program mes With Read Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Post ( program mes Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Correct ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis Method Not Allowed () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGET Ġprogram mes Ġwith Ġan Ġunsupported Ġinclude Ġtype Ġtoken ĊĠĠĠĠ Ġ* Ġe . g . Ġsomething Ġelse Ġbes ides Ġ' Bearer ' ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Program mes Unsupported Include Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Get ( program mes Uri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Authorization ", Ġtoken Incorrect ) ĊĠĠĠĠĠĠĠ Ġ}. and Do Ġ{ Ġprintln () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect Ġ{ Ġstatus Ġ{ Ġis BadRequest () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠ Ġ} Ċ } Ċ