/******************************************************************************* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠAll an ĠY osh io ĠH ase g awa Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ******************************************************************************/ Ċ package Ġcom . h ase g awa . di . server . auth s Ċ Ċ import Ġcom . h ase g awa . di . server . da os . Users Dao Ċ import Ġio . drop wizard . auth . Authenticator Ċ import Ġio . drop wizard . auth . basic . Basic Credentials Ċ import Ġorg . mind rot . j bcrypt . BC rypt Ċ import Ġjava . util .* Ċ Ċ class ĠDi Authenticator ( val Ġusers Dao : ĠUsers Dao ) Ġ: ĠAuth enticator < Basic Credentials , ĠUser > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġauthenticate ( credentials : ĠBasic Credentials ?): ĠOptional < User >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġusers Dao . findBy Username ( credentials !!. username ) ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ġ!= Ġnull Ġ&& ĠBC rypt . check pw ( credentials . password , Ġuser . password Hash )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOptional . of ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠOptional . empty () ĊĠĠĠ Ġ} Ċ } Ċ