/******************************************************************************* Ċ Ġ* Ġ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 . pass gen Ċ Ċ import Ġorg . mind rot . j bcrypt . BC rypt Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġh ase g awa Ġon Ġ 3 / 2 6 / 2 0 1 6 . Ċ Ġ*/ Ċ class ĠMain App Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( args . size Ġ!= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" With Ġgradle , Ġuse : Ġ- P app Args =\" [' < username >', Ġ'< password >', Ġ' role '] \" Ġto Ġpass Ġarguments .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" Pass Ġthe Ġpassword Ġyou Ġwant Ġto Ġhash / salt Ġas Ġargument Ġto Ġthis Ġprogram .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġargs [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠBC rypt . hash pw ( args [ 1 ], ĠBC rypt . gens alt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrole _ level Ġ= Ġwhen Ġ( args [ 2 ]. toUpperCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" USER " Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" EDITOR " Ġ-> Ġ 0 x 4 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ADMIN " Ġ-> Ġ 0 x 9 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRuntimeException (" Role Ġunknown .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" insert Ġinto Ġusers Ġ( id , Ġusername , Ġpassword _ hash , Ġrole _ level , Ġpublic _ name ) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values Ġ(' $ id ', Ġ'$ username ', Ġ'$ hash ', Ġ$ role _ level , Ġ'$ username ')" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }