package Ġcom . al uc ard lock on . jk rest boot . base . config Ċ Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . security . config . annotation . authentication . builders . Authentication Manager Builder Ċ 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 . crypto . bcrypt . BC rypt Password Encoder Ċ import Ġorg . springframework . web . cors . Cors Configuration Ċ import Ġorg . springframework . web . cors . Cors Configuration Source Ċ import Ġorg . springframework . web . cors . Url Based Cors Configuration Source Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . http . HttpMethod ĊĊ Ċ @ Enable Web Security Ċ class ĠWeb Security Config : ĠWeb Security Configurer Adapter () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġany UserDetails Service : ĠAny UserDetails Service ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġfun Ġset Any UserDetails Service ( any UserDetails Service : ĠAny UserDetails Service ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . any UserDetails Service Ġ= Ġany UserDetails Service ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmy Custom Login Authentication Success Handler : ĠCustom Login Authentication Success Handler ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmy Custom Login Authentication Failure Handler : ĠCustom Login Authentication Failure Handler ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( http : ĠHttp Security ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ æĹł éľĢ ä½¿çĶ¨ csrf ĊĠĠĠĠĠĠĠ Ġhttp . csrf (). disable () ĊĠĠĠĠĠĠĠ Ġ// Ġspring Ġsecurity è·¨ åŁŁ è®¾ç½® ĊĠĠĠĠĠĠĠ Ġhttp . cors (). configuration Source ( cors Configuration Source ()) ĊĠĠĠĠĠĠĠ Ġ// Ġ åħ¶ä»ĸ å®īåħ¨ è®¾ç½® ĊĠĠĠĠĠĠĠ Ġhttp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. authorize Requests () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ant Matchers ( HttpMethod . POST , Ġ"/ account / "). anonymous () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Request (). authenticated () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. form Login (). login Page ("/ login "). success Handler ( my Custom Login Authentication Success Handler ). failure Handler ( my Custom Login Authentication Failure Handler ). permit All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( auth : ĠAuthentication Manager Builder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġauth . in Memory Authentication (). password Encoder ( BC rypt Password Encoder ()) ĊĠĠĠĠĠĠĠ Ġauth !!. user Details Service < Any UserDetails Service >( any UserDetails Service ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. password Encoder ( BC rypt Password Encoder ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è·¨ åŁŁ è®¾ç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġcors Configuration Source (): ĠC ors Configuration Source Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcors Configuration Ġ= ĠC ors Configuration () ĊĠĠĠĠĠĠĠ Ġcors Configuration . add Allowed Method ( Cors Configuration . ALL ) ĊĠĠĠĠĠĠĠ Ġcors Configuration . add Allowed Header ( Cors Configuration . ALL ) ĊĠĠĠĠĠĠĠ Ġcors Configuration . add Ex posed Header (" Authorization ") ĊĠĠĠĠĠĠĠ Ġcors Configuration . add Allowed Origin ("* ") ĊĠĠĠĠĠĠĠ Ġcors Configuration . allow Credentials Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġcors Source Ġ= ĠUrl Based Cors Configuration Source () ĊĠĠĠĠĠĠĠ Ġcors Source . register Cors Configuration (" /** ", Ġcors Configuration ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcors Source ĊĠĠĠ Ġ} Ċ Ċ }