package Ġcom . example . demo Ċ Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . security . config . annotation . web . builders . Http Security Ċ import Ġorg . springframework . security . config . annotation . web . builders . Web 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 . web . servlet . invoke Ċ import Ġorg . springframework . security . crypto . factory . Password Encoder Factories Ċ import Ġorg . springframework . security . crypto . password . Password Encoder Ċ Ċ @ Enable Web Security Ċ class ĠWeb Security Config Ġ: ĠWeb Security Configurer Adapter () Ġ{ ĊĠĠĠ Ġ// ĠãĤ¢ ãĤ«ãĤ¦ãĥ³ãĥĪ çĻ»éĮ² æĻĤ ãģ® ãĥĳ ãĤ¹ ãĥ¯ ãĥ¼ãĥī ãĤ¨ ãĥ³ ãĤ³ãĥ¼ãĥī ãģ§ åĪ©çĶ¨ ãģĻãĤĭãģŁãĤģ DI ç®¡çĲĨ ãģĻãĤĭ ãĢĤ ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġpassword Encoder (): ĠPassword Encoder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPassword Encoder Factories . create Delegating Password Encoder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( web : ĠWeb Security ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ@ formatter : off ĊĠĠĠĠĠĠĠ Ġweb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. debug ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ign oring () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ant Matchers ("/ js /** ", Ġ"/ css /** ") ĊĠĠĠĠĠĠĠ Ġ// Ġ@ formatter : on ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconfigure ( http : ĠHttp Security ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ@ formatter : off ĊĠĠĠĠĠĠĠ Ġhttp Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize Requests Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/", Ġpermit All ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ signup ", Ġpermit All ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ members / user /** ", Ġhas Authority (" ROLE _ USER ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ images / user /** ", Ġhas Authority (" ROLE _ USER ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ members / admin /** ", Ġhas Authority (" ROLE _ ADMIN ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ images / admin /** ", Ġhas Authority (" ROLE _ ADMIN ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ members / manager /** ", Ġhas Authority (" ROLE _ MANAGER ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ members / teacher /** ", Ġhas Authority (" ROLE _ TE AC HER ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ("/ members / student /** ", Ġhas Authority (" ROLE _ ST UD ENT ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthorize ( any Request , Ġauthenticated ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Login Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Success Url ("/", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Http Session Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Cookies (" J SESSION ID ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogout Success Url Ġ= Ġ"/" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġfor Ġ/ h 2 - console ĊĠĠĠĠĠĠĠ Ġ// Ġhttp . csrf (). disable (); ĊĠĠĠĠĠĠĠ Ġ// Ġhttp . headers (). frame Options (). disable (); ĊĠĠĠ Ġ} Ċ } Ċ