[Spring] Spring Security - Method Security
π Spring Security - Method Security
π½ κ°μ
`Spring Seucrity`λ Web κΈ°λ° Securityλ μμ§λ§, `Method Security`λΌλ κΈ°λ₯λ μ 곡νλ κ²μ΄μμ.
μ΄κ²μ `Service Layer`λ₯Ό μ§μ νΈμΆν λ, μ΄μ©ν μ μλ 보μ κΈ°λ₯μΈ κ²μ΄μμ. Web κΈ°λ°μ Securityλ₯Ό μ μ©νμλλ μ΄μΈλ¦¬μ§ μλ κΈ°λ₯μΈ κ²μ΄μμ.
λν, `Web Application` μΈμ `Desktop Application`μλ μ μ©μ΄ κ°λ₯ν κ²μ΄μμ.
π½ EnableGlobalMethodSecurity
`MethodSecurity`λ `SecurityConfig`μ€μ μ΄ μ μ©λμ§ μλ κ²μ΄μμ.
`MethodSecurity`μ© μ€μ μ΄ λ°λ‘ νμνλ° μ΄ λ μ΄μ©νλ κ²μ΄ `@EnableGlobalMethodSecurity`μΈ κ²μ΄μμ.
π¦ μμ±λ€
SecuredEnable | prePostEnabled | jsr250Enabled |
@Securedλ₯Ό μ΄μ©νμ¬ μΈκ° μ²λ¦¬λ₯Ό νκ³ μΆμ λ μ¬μ©νλ Option | @PreAuthorize, @PostAuthorizeλ₯Ό μ΄μ©νμ¬ μΈκ° μ²λ¦¬λ₯Ό νκ³ μΆμ λ μ¬μ© νλ Option |
@RolesAllowedλ₯Ό μ΄μ©νμ¬ μΈκ° μ²λ¦¬λ₯Ό νκ³ μΆμ λ, μ¬μ©νλ Option |
Default Value : false | Default Value : false | Dafault Value : false |
βΊ @Secured, @RolesAllowd
β νΉμ Method νΈμΆ μ΄μ μ΄μ©μ κΆν νμΈ
β Spring EL λ―Έμ§μ
β `@Secured`λ `Spring`μμ μ§μνλ Annotaionμ΄λ©°, `@RolesAllowed`λ Java Standard
βΊ @PreAuthorize, @PostAuthorize
β νΉμ Method νΈμΆ μ , ν μ΄μ©μ κΆν νμΈ
β Spring EL μ§μ
β Springμμ μ§μνλ Annotion
β `PostAuthorize`λ ν΄λΉ Methodμ λ°ν(Return)κ°μ `returnObject`λ‘ μ°Έμ‘°νμ¬ SpElμ ν΅ν΄ μΈκ° μ²λ¦¬
βΊ @PreAuthorize, @PostAuthorize
β Web λ°©μμμλ Roleμ κ³μΈ΅ ꡬ쑰 μ€μ μ ν΄ μ£Όμ§λ§, `MethodSecurity`μμλ μ μ©λμ§ μμ
β `MethodSecurity`μ© `RoleHieachy` μ€μ λ³λ νμ
β `GlobalMethodSecurityConfiguration`Class μμ λ€ `accessDecisionManager()` Override
ν λ€ `WebSecurity`μ€μ μμ ν΄μ€κ²κ³Ό λ§μ°¬κ°μ§λ‘ `RoleHirearachy`μ€μ νκ³ , `accessDicisionVoter`μΆκ°