package Ġcom . easy kotlin . reak t . security Ċ Ċ import Ġcom . easy kotlin . reak t . handler . My Access Denied Handler Ċ import Ġcom . easy kotlin . reak t . service . My User Detail Service Ċ 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 . core . user details . UserDetails Service Ċ import Ġorg . springframework . security . crypto . bcrypt . BC rypt Password Encoder Ċ import Ġorg . springframework . security . web . access . Access Denied Handler Ċ Ċ /** Ċ pre Post Enabled Ġ: åĨ³å®ļ Spring ĠSecurity çļĦ åīį æ³¨è§£ æĺ¯åĲ¦ åı¯çĶ¨ Ġ[@ Pre Authorize ,@ Post Authorize , .. ] Ċ secure Enabled Ġ: Ġ åĨ³å®ļ æĺ¯åĲ¦ Spring ĠSecurity çļĦ ä¿Ŀ éļľ æ³¨è§£ Ġ[@ Sec ured ] Ġæĺ¯åĲ¦ åı¯çĶ¨ Ċ js r 2 5 0 Enabled Ġ ï¼ļ åĨ³å®ļ ĠJ SR - 2 5 0 Ġannotations Ġ æ³¨è§£ [@ Roles Allowed .. ] Ġæĺ¯åĲ¦ åı¯çĶ¨ . Ċ Ġ*/ Ċ Ċ @ Configuration Ċ @ Enable Web Security Ċ // Ġ å¼ĢåĲ¯ ĠSpring ĠSecurity Ġæĸ¹æ³ķ çº§ å®īåħ¨ Ċ @ Enable Global Method Security ( pre Post Enabled Ġ= Ġtrue , Ġsec ured Enabled Ġ= Ġtrue , Ġjsr 2 5 0 Enabled Ġ= Ġtrue ) Ċ class ĠWeb Security Config Ġ: ĠWeb Security Configurer Adapter () Ġ{ ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġmy Access Denied Handler (): ĠAccess Denied Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMy Access Denied Handler ("/ 4 0 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġoverride Ġfun Ġuser Details Service (): ĠUser Details Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMy User Detail Service () ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġhttp :// 1 2 7 . 0 . 0 . 1 : 8 0 0 4 / article - list . js ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( http : ĠHttp Security ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp . csrf (). disable () ĊĠĠĠĠĠĠĠ Ġhttp . authorize Requests () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ant Matchers ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ js /** ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ css /** " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). permit All () Ġ// Ġä¸į æĭ ¦ æĪª js , css ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Request (). authenticated () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. form Login () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// . login Page ("/ login ") // Ġurl Ġè¯·æ±Ĥ è·¯å¾Ħ ï¼Į å¯¹åºĶ ĠLogin Controller Ġ éĩĮ éĿ¢çļĦ Ġ@ GetMapping ("/ login ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. username Parameter (" username ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. password Parameter (" password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. default Success Url ("/ index "). permit All () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exception Handling (). access Denied Handler ( my Access Denied Handler ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. exception Handling (). access Denied Page ("/ 4 0 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. logout (). permit All () ĊĊĠĠĠĠĠĠĠ Ġhttp . logout (). logout Success Url ("/") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( auth : ĠAuthentication Manager Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Authentication Manager Ġä½¿çĶ¨ æĪĳä»¬çļĦ Ġlight S word User Detail Service ĠæĿ¥ èİ·åıĸ çĶ¨æĪ· ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġauth . user Details Service ( user Details Service ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. password Encoder ( password Encoder ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¯Ĩçłģ åĬłå¯Ĩ ç®Ĺæ³ķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġpassword Encoder (): ĠBC rypt Password Encoder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBC rypt Password Encoder (); ĊĠĠĠ Ġ} Ċ } Ċ