Skip to content

joonseolee/springsecurity-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

39 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

springsecurity-tutorial

์ธํ”„๋Ÿฐ ์ฝ”์–ด-์Šคํ”„๋ง-์‹œํ๋ฆฌํ‹ฐ ์ˆ˜์—…์„ ๋ณด๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•ด๋ด„.
๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ฐ ์ฑ•ํ„ฐ๋ณ„๋กœ ๋‚˜๋ˆ ์ ธ์žˆ๋‹ค.
์ตœ๋Œ€ํ•œ ์ฃผ์„๋“ฑ์„ ์ด์šฉํ•ด์„œ ๊ฐ ์ฝ”๋“œ๋ณ„ ์„ค๋ช…์ถ”๊ฐ€ํ–ˆ์Œ.
์ฑ…์ด์™ธ์—๋„ ์“ธ๋งŒํ•œ๊ฒŒ ์žˆ์œผ๋ฉด ์ถ”๊ฐ€ ์˜ˆ์ •.

์ธ๊ฐ€ ๊ฒฐ์ • ์‹ฌ์˜์ž

  • AccessDecisionManager
    • ์ธ์ฆ์ •๋ณด, ์š”์ฒญ์ •๋ณด, ๊ถŒํ•œ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์ง€์›์ ‘๊ทผํ—ˆ์šฉํ• ๊ฒƒ์ธ์ง€ ์•„๋‹Œ์ง€ ์ตœ์ข… ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์ฒด.
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ Voter ๋“ค์„ ๊ฐ€์งˆ์ˆ˜์žˆ๊ณ  ํ—ˆ์šฉ, ๊ฑฐ๋ถ€, ๋ณด๋ฅ˜๋“ฑ์— ํ•ด๋‹นํ•˜๋Š” ๋ฆฌํ„ด๋ฐ›๊ณ  ํŒ๋‹จ ๋ฐ ๊ฒฐ์ •
    • ์ ‘๊ทผ๊ฒฐ์ •์— ๋Œ€ํ•œ 3๊ฐ€์ง€ ์œ ํ˜•
      • AffirmativeBased - ํ•˜๋‚˜๋ผ๋„ ํ—ˆ์šฉํ• ๊ฒฝ์šฐ ํŒจ์Šค
      • ConsensusBased - ๋‹ค์ˆ˜๊ฐ€ ํ—ˆ์šฉํ• ๊ฒฝ์šฐ ํŒจ์Šค
      • UnanimousBased - ๋ชจ๋‘๊ฐ€ ํ—ˆ์šฉํ• ๊ฒฝ์šฐ ํŒจ์Šค
  • AccessDecisionVoter
    • ํŒ๋‹จ์„ ์‹ฌ์‚ฌํ•˜๋Š”๊ฒƒ
    • ๊ถŒํ•œ๋ถ€์—ฌ์—์„œ ํŒ๋‹จํ•˜๋Š” ์ž๋ฃŒ๋Š” ์œ„์—์„œ ๋งํ•œ ์ธ์ฆ์ •๋ณด, ์š”์ฒญ์ •๋ณด, ๊ถŒํ•œ์ •๋ณด์ด๋‹ค.
    • ๊ฒฐ์ •๋ฐฉ์‹์€ 3๊ฐ€์ง€ - ์ ‘๊ทผํ—ˆ์šฉ(1), ์ ‘๊ทผ๊ธˆ์ง€(-1), ์ ‘๊ทผ๋ณด๋ฅ˜(0)

Mapstruct - etc

mapstruct ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ธ๊ฒธ ์ด๊ณณ์— ์–ด์ฉŒ๋‹ค๋ณด๋‹ˆ ๋„ฃ์—ˆ๋‹ค?
๋Œ€๋ถ€๋ถ„ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•ด๋ดค๊ณ  ๋‹ค๋งŒ strategy, provider ์ง์ ‘ ๊ตฌํ˜„๊นŒ์ง€๋Š” ์ƒ๋žตํ–ˆ์Œ.
์‚ฌ์šฉ๋œ ํŒŒ์ผ๋“ค์˜ ์œ„์น˜๋Š” com.joonseolee.springsecuritytutorial.domain ์—์„œ ํ™•์ธํ• ์ˆ˜์žˆ๋‹ค.

์ธ๊ฐ€ ํ”„๋กœ์„ธ์Šค

  • UrlResourcesMapFactoryBean
    • DB ๋กœ๋ถ€ํ„ฐ ์–ป์€ ๊ถŒํ•œ/์ž์› ์ •๋ณด๋ฅผ ResourceMap ์„ ๋นˆ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ UrlFilterInvocationSecurityMetadataSource ์— ์ „๋‹ฌ.
  • Method ๋ฐฉ์‹ - ์•„๋…ธํ…Œ์ด์…˜ ๊ถŒํ•œ ์„ค์ •
    • @PreAuthorize, @PostAuthroize
      • SpEL ์ง€์›
      • PrePostAnnotationSecurityMetadataSource ๊ฐ€ ๋‹ด๋‹น
    • @Secured, @RolesAllowed
      • SpEL ๋ฏธ์ง€์›
      • SecuredAnnotationSecurityMetadataSource, Jsr250MethodSecurityMetadataSource ๊ฐ€ ๋‹ด๋‹น

์ธ๊ฐ€ ํ”„๋กœ์„ธ์Šค ๊ตฌํ˜„

  • ์ธ๊ฐ€์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ดˆ๊ธฐํ™” ๊ณผ์ •๊ณผ ์ง„ํ–‰
    • ์ดˆ๊ธฐํ™” ๊ณผ์ •
      1. ์ดˆ๊ธฐํ™”์‹œ ์ „์ฒด ๋นˆ์„ ๊ฒ€์‚ฌํ•˜์—ฌ ๋ณด์•ˆ์ด ์„ค์ •๋œ ๋ฉ”์†Œ๋“œ ํƒ์ƒ‰
      2. ๋นˆ์˜ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
      3. ๋ณด์•ˆ ๋ฉ”์†Œ๋“œ์— ์ธ๊ฐ€์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” Advice ๋“ฑ๋ก
      4. ๋นˆ ์ฐธ์กฐ์‹œ ์‹ค์ œ ๋นˆ์ด ์•„๋‹Œ ํ”„๋ก์‹œ ๋นˆ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ
    • ์ง„ํ–‰๊ณผ์ •
      1. ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์‹œ ํ”„๋ก์‹œ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ
      2. Advice ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค๋ฉด Advice ๋ฅผ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜์—ฌ ์ธ๊ฐ€์ฒ˜๋ฆฌ
      3. ๊ถŒํ•œ ์‹ฌ์‚ฌ ํ†ต๊ณผํ•˜๋ฉด ์‹ค์ œ ๋นˆ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published