package Ġno . tom lin . api . config Ċ Ċ import Ġno . tom lin . api . common . Constants . TABLE _ ROLE Ċ import Ġno . tom lin . api . common . Constants . TABLE _ USER Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġorg . springframework . security . config . annotation . authentication . builders . Authentication Manager Builder Ċ import Ġorg . springframework . security . config . annotation . method . configuration . Enable Global Method Security Ċ import Ġorg . springframework . security . config . annotation . web . builders . Http Security Ċ import Ġorg . springframework . security . config . annotation . web . configuration . Enable Web Security Ċ import Ġorg . springframework . security . config . annotation . web . configuration . Web Security Configurer Adapter Ċ import Ġorg . springframework . security . config . http . Session Creation Policy Ċ import Ġorg . springframework . security . crypto . bcrypt . BC rypt Password Encoder Ċ import Ġjavax . sql . DataSource Ċ Ċ @ Configuration Ċ @ Enable Web Security Ċ @ Enable Global Method Security ( sec ured Enabled Ġ= Ġtrue ) Ċ class ĠSecurity Config Ġ: ĠWeb Security Configurer Adapter () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠdataSource : ĠDataSource ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure ( auth : ĠAuthentication Manager Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġauth . jdbc Authentication () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. dataSource ( dataSource ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. users By Username Query (" SELECT Ġemail , Ġpassword , Ġenabled ĠFROM Ġ$ TABLE _ USER ĠWHERE Ġemail Ġ= Ġ? ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. author ities By Username Query (" SELECT Ġemail , Ġrole ĠFROM Ġ$ TABLE _ ROLE ĠWHERE Ġemail Ġ= Ġ? ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure ( http : ĠHttp Security ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. csrf (). disable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. form Login (). disable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. logout (). disable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. anonymous (). disable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. session Management (). session Creation Policy ( Session Creation Policy . STATE LESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Basic () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġencoder () Ġ= ĠBC rypt Password Encoder ( 4 ) Ċ } Ċ