рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреА рддреИрдпрд╛рд░реАред рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛

рдпрд╣ рд▓реЗрдЦ рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкреНрд░реЗрдк рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред


рдпрд╣ рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╡рд┐рд╖рдп рдФрд░ рдЙрд╕ рдкрд░ рдореБрдЦреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред


рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


тЖУ рдЕрдиреНрдп рд▓реЗрдЦ рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдВрдХ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ available


рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
  1. рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди, рдХрдВрдЯреЗрдирд░, IoC, рд╕реЗрдо
  2. рдПрдУрдкреА (рдкрд╣рд▓реВ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ)
  3. рдЬреЗрдбреАрдмреАрд╕реА, рд▓реЗрдирджреЗрди, рдЬреЗрдкреАрдП, рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛
  4. рд╡рд╕рдВрдд рдХрд╛ рдмреВрдЯ
  5. рд╕реНрдкреНрд░рд┐рдВрдЧ mvc
  6. рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛
  7. рдмрд╛рдХреА
  8. рдкрд░реАрдХреНрд╖рдг




рд╕реНрд╡рдпрдВ рдкреНрд░рд╢реНрди:


рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреНрдпрд╛ рд╣реИ?

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред
рд╡рд╕рдВрдд рдореЗрдВ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ:


  1. рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо UsernamePasswordAuthenticationToken рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
  2. рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЯреЛрдХрди AuthenticationManager рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдпрджрд┐ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ AM рдкреЙрдкреНрдпреБрд▓реЗрдЯреЗрдб Authentication рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  4. рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреЛ SecurityContextHolder.getContext().setAuthentication(...) рд╕реЗрдЯ рдХрд░рдХреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ SecurityContextHolder.getContext().setAuthentication(...)

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рднреВрдорд┐рдХрд╛ рд╣реИред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред


рдкреНрд░рдХреНрд░рд┐рдпрд╛:


  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкреНрд░рдореБрдЦ (рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓) рджреНрд╡рд╛рд░рд╛, рдЙрд╕рдХреА рднреВрдорд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ
  2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднреВрдорд┐рдХрд╛ рд╕рдВрд╕рд╛рдзрди рднреВрдорд┐рдХрд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЬрд╛рдБрдЪ рдХреА рдЧрдИ

рдкрд╣рд▓реЗ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИред


рд╕реБрд░рдХреНрд╖рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ?
  • рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдУрдкреА рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреЛ рдХрд┐ AbstractSecurityInterceptor рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред


    рдпрд╣ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


  • рд╕реБрд░рдХреНрд╖рд╛ рд╡реЗрдм рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рд╕рд░реНрд╡рд▓реЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред



рдкрд╣рд▓рд╛ рдЪрд░рдг DelegatingFilterProxy рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред рд╡рд╣ FilterChainProxy рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ FilterChainProxy ред


FilterChainProxy рдПрдХ рдмреАрди рд╣реИ рдЬреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ SecurityFilterChain рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред


SeccurityFilterChain рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдореЗрдВ URL рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред



рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╡рд╕рдВрдд рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ

SecurityContextHolder - рдЗрд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ SecurityContext рдХреА рдкрд╣реБрдВрдЪ рдФрд░ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИред


SecurityContext - рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд▓реА рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред


Authentication - рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдпрд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдП рдЧрдП рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЙрди рд╢рдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХреА рдкрд╣реБрдВрдЪ рд╣реИред


рджреА рдЧрдИ GrantedAuthority - GrantedAuthority рдкреНрд░рд╛рдЪрд╛рд░реНрдп рдХреЛ рджрд┐рдП рдЧрдП рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред


UserDetails - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА UserDetails : рдкрд╛рд╕рд╡рд░реНрдб, рд▓реЙрдЧрд┐рди, рдЕрдиреБрдорддрд┐рдпрд╛рдБред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдлрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


UserDetailsService - рдпрд╣ рд╕реЗрд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА, рдбреЗрдЯрд╛рдмреЗрд╕, рдЖрджрд┐) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдФрд░ рдЙрд╕реЗ UserDetails рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИред


рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░реЙрдХреНрд╕реА рдлрд╝рд┐рд▓реНрдЯрд░ рдХреНрдпрд╛ рд╣реИ?

DelegatingFilterProxy рд╡рд░реНрдЧ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ javax.Servlet.Filter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред


рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд┐рд▓реНрдЯрд░ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдмреАрдиреНрд╕ рдХреЛ рдХрд╛рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдлрд┐рд▓реНрдЯрд░ рднреА рд╣реИрдВред


рд╕реБрд░рдХреНрд╖рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреНрдпрд╛ рд╣реИ?

рдлрд╝рд┐рд▓реНрдЯрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ SecurityFilterChain рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди DefaultSecurityFilterChain рд╣реИред


DSFC рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд░реЛрдз рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛ рд╣реИред рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИрдВ рдЬреЛ рд╕рд░реНрд╡рд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдпрд╣рд╛рдБ DSFC рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИрдВ:


  • ChannelProcessingFilter
  • SecurityContextPersistenceFilter
  • ConcurrentSessionFilter
  • рдХреЛрдИ рднреА рдлрд╝рд┐рд▓реНрдЯрд░: UserNamePasswordAuthenticationFilter / CasAythenticationFilter / BasicAuthenticationFilter
  • SecurityContextHolderAwareRequestFilter
  • JaasApiIntegrationFilter
  • RemeberMeAuthenticationFilter
  • AnonymusAuthenticationFilter
  • ExceptionTranslationFilter
  • FilterSecurityInterceptor

рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреНрдпрд╛ рд╣реИ?

рдкреНрд░рд╛рдердорд┐рдХ рд╡рд╕реНрддреБ рдПрдХ SecurityContextHolder ред рдпрд╣ рд╡рд╣ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рд╡рд░реНрддрдорд╛рди рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрд╡реЗрджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХрд╛ рд╡рд┐рд╡рд░рдгред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, ThreadLocal рдЙрдкрдпреЛрдЧ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


 // SecurityContext SecurityHolderContext.getContext() 

getContext() рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ SecurityContext ред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ Authentication рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


Authentication рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдгреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ:


  • рдкреНрд░рд╛рдЪрд╛рд░реНрдп рдХреЛ рджреА рдЧрдИ рд╢рдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ (рд▓реЙрдЧрд┐рди, рдкрд╛рд╕рд╡рд░реНрдб)
  • рд╡рд┐рд╡рд░рдг - рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЬрд╛рдирдХрд╛рд░реАред рдЕрд╢рдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • рдкреНрд░рдореБрдЦ
  • рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдзреНрд╡рдЬ - рдмреВрд▓рд┐рдпрди рдЪрд░ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рд╛рдЪрд╛рд░реНрдп рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рд╛ рдЙрддреНрддреАрд░реНрдг рдХреА рд╣реИ

рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд┐рдХ рдЕрд╡рд░реЛрдзрди рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ?
 @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() //    /resources .antMatchers("/resources/**").permitAll() //      2  .antMatchers("/").hasAnyRole("ANONYMOUS", "USER") .antMatchers("/login)*").hasAnyRole("ANONYMOUS", "USER") .antMatchers("/logoutr").hasAnyRole("ANONYMOUS", "USER") //      ADMIN .antMatchers("iadmin/*").hasRole("ADMIN") .antMatchers("/events/").hasRole("ADMIN") } 

AntMatchers рдФрд░ mvcMatchers () рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ * рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?

рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХреЛрдИ рднреАред"


2 рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:


  • * - рдХреЗрд╡рд▓ рдЙрд╕реА рд╕реНрддрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рд╕реНрддрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрдЯрд░реНрди "/ рдЖрджреЗрд╢ / *" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ


    / рдЖрджреЗрд╢ / рдПрд▓рд┐рдпрдВрд╕ рдпрд╛ / рдЖрджреЗрд╢ / 1, рд▓реЗрдХрд┐рди рдирд╣реАрдВ / рдЖрджреЗрд╢ / рд╡рд┐рджреЗрд╢реА / 1ред


  • ** - рд╕рднреА рд╕реНрддрд░реЛрдВ рдкрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИред
    рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рдПрдЧреА, / рдЖрджреЗрд╢ / рдПрд▓рд┐рдпрдВрд╕, / рдЖрджреЗрд╢ / 1, / рдЖрджреЗрд╢ / рд╡рд┐рджреЗрд╢реА / 1ред



рдПрдВрдЯреАрдореИрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ mvcMatcher рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреНрдпреЛрдВ рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐ antMatcher(тАЬ/serviceтАЭ) рдХреЗрд╡рд▓ тАЬ/serviceтАЭ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкрде рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ mvcMatcher(тАЬ/serviceтАЭ) тАЬ/serviceтАЭ , тАЬ/service.htmlтАЭ , "/service.abc" рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ ред


рдХреНрдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рдкреЛрд░реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢рд┐рдВрдЧ рд╣реИ? рдирдордХ рдХреНрдпрд╛ рд╣реИ?

рд╣рд╛рдБ, рдпрд╣ рдХрд░рддрд╛ рд╣реИред рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдбрдЗрдиреНрдХреЛрдбрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ:


static PasswordEncoder createDelegatingPasswordEncoder() , рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ DelegatePasswordEncoder рд▓реМрдЯрд╛рддрд╛ рд╣реИред


рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдордХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдХреНрд╕реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╣реИрд╢ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирдордХ рд╣реИрд╢ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╣реИрд╢ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЖрдкрдХреЛ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ?

рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд╛ рдмреАрдиреНрд╕ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ)ред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рд╣реИред


рдЗрд╕реЗ @EnableGlobalMethodSecurity рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


@RolesAllowed рдПрдиреЛрдЯреЗрд╢рди рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди JSR-250 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
@RolesAllowed рдЖрдкрдХреЛ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд┐рдпреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдореЗрдВ) рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: @RolesAllowed(тАЬADMINтАЭ) рдХреЗрд╡рд▓ ADMIN рднреВрдорд┐рдХрд╛ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛


рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ @Configuration рдХреНрд▓рд╛рд╕ рдкрд░ @EnableGlobalMethodSecurity(jsr250Enabled=true) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ + рдЖрдкрдХреЛ рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдХреНрд▓рд╛рд╕рдкреИрде рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рд╣рдореЗрдВ @PreAuthorize рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВ

@PreAuthorize рдЖрдкрдХреЛ рд╕реНрдкреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ @EnableGlobalMethodSecurity(prePostEnabled=true) рд╕реЗрдЯ @EnableGlobalMethodSecurity(prePostEnabled=true)


рдЗрди рд╕рднреА рдПрдиреЛрдЯреЗрд╢рдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдПрдВрдб-рдЯреВ-рдПрдВрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдУрдкреА (рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi470786/


All Articles