package Ġcom . ne va . jav are l . app . adm . auth Ċ Ċ import Ġcom . ne va . jav are l . communication . rest . api . Redirect Ċ import Ġcom . ne va . jav are l . framework . api . rest . Controller Ċ import Ġcom . ne va . jav are l . security . auth . api . Principal Password Credentials Ċ import Ġjavax . ws . rs .* Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ Ċ @ Path ("/ adm / auth / user ") Ċ class ĠUser Controller Ġ: ĠController () Ġ{ ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ list ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun ĠgetList (): ĠList < User Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb Admin . session Ġ{ Ġem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= ĠUser Repository ( em ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġrepo . findAll () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ session Ġusers . toList () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ login ") ĊĠĠĠ Ġ@ Produces ( MediaType . TEXT _ HTML ) ĊĠĠĠ Ġfun Ġget Login (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview (" bundle :// adm / view / auth / user / login . pe b "). render () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ POST ĊĠĠĠ Ġ@ Path ("/ login ") ĊĠĠĠ Ġfun Ġpost Login (@ Form Param (" user . principal ") Ġprincipal : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Form Param (" user . password ") Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Form Param (" user . remember ") Ġremember : ĠBoolean ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġguard . attempt ( Principal Password Credentials ( principal , Ġpassword , Ġremember )) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRedirect . to ( url Generator . name (" home ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ logout ") ĊĠĠĠ Ġfun Ġget Logout (): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġguard . logout () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRedirect . to ( url Generator . name (" home ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ register ") ĊĠĠĠ Ġ@ Produces ( MediaType . TEXT _ HTML ) ĊĠĠĠ Ġfun Ġget Register (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview (" bundle :// adm / view / auth / user / register . pe b "). render () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ POST ĊĠĠĠ Ġ@ Path ("/ register ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun Ġpost Register (@ Bean Param Ġinput : ĠUser Input ): ĠUser Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb Admin . session Ġ{ Ġem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= ĠUser Repository ( em ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġrepo . register ( input ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ session Ġuser ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }