package Ġs late kit . samples . common . auth Ċ Ċ import Ġs late kit . apis . Auth Mode Ċ import Ġs late kit . apis . core . Roles Ċ import Ġs late kit . apis . support . Authenticator Ċ import Ġs late kit . common . info . ApiKey Ċ import Ġs late kit . common . requests . Request Ċ import Ġs late kit . results . Outcome Ċ import Ġs late kit . results . Success Ċ Ċ class ĠSample Auth Ġ: ĠAuth enticator ( listOf ()) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOverride Ġand Ġimplement Ġthis Ġmethod Ġif Ġyou Ġwant Ġto Ġcompletely Ġhandle Ġauthorization Ġyour Ġself . ĊĠĠĠĠ Ġ* ĠIMPORT ANT : ĊĠĠĠĠ Ġ* Ġ 1 . Ġall Ġyou Ġneed Ġto Ġdo Ġto Ġimplement Ġyour Ġauthorization Ġis Ġto Ġimplement Ġthe ĠgetUser Roles Ġbelow ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠNOT ES : ĊĠĠĠĠ Ġ* Ġ 1 . Ġsee Ġbase Ġclass Ġimplementation Ġfor Ġdetails . ĊĠĠĠĠ Ġ* Ġ 2 . Ġthe Ġauth Ġmodes Ġon Ġthe Ġap is Ġcan Ġbe Ġ" app - roles " Ġor Ġ" key - roles " Ġ( Ġapi - keys Ġ) ĊĠĠĠĠ Ġ* Ġ 3 . Ġthe Ġbase Ġclass Ġproperly Ġdeleg ates Ġhandling Ġthe Ġauth Ġmodes . ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcheck ( req : ĠRequest , Ġauth Mode : ĠAuth Mode , Ġroles : ĠRoles ): ĠOut come < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSuccess ( true ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠExample Ġof Ġusing ĠAPI Ġkeys Ġfor Ġprotected Ġaccess Ġto ĠAPIs ĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠNOTE : ĠAPI Ġkeys Ġmay Ġbe Ġsufficient Ġfor Ġlocal , Ġinternal Ġnetwork Ġbased Ġaccess Ġto ĠAPIs . ĊĠĠĠĠĠĠĠĠ Ġ* ĠYou Ġshould Ġuse Ġsome Ġtoken / OAuth Ġbased Ġapproach Ġin Ġother Ġsituations . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠNOTE : ĠThese Ġshould Ġbe Ġkept Ġsecret Ġin Ġsome Ġway , Ġbut Ġshown Ġhere Ġfor Ġsample Ġpurposes . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġapi Keys Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" user " Ġ, Ġ" A 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user " ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" po " ĠĠ Ġ, Ġ" B 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user , po " ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" qa " ĠĠ Ġ, Ġ" C 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user , po , qa " ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" dev " Ġ Ġ, Ġ" D 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user , po , qa , dev " ĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" ops " Ġ Ġ, Ġ" E 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user , po , qa , dev , ops " ĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApi Key (" admin ", Ġ" F 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ", Ġ" user , po , qa , dev , ops , admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }