RestApi ๋งŒ๋“ค๊ธฐ - ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์„ค์ • (13)

๋ฐ˜์‘ํ˜•

๋‚˜๋Š” ์–ผ๋งˆ์ „ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์„ค์น˜ํ•˜๊ณ ,
์œ ์ €๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ง„ํ–‰์„ ํ•œ์ ์ด ์žˆ์—ˆ๋‹ค,.
๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ํ”„๋กœ์žญํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผฐ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ์ฐธ๋‹ดํ–ˆ๋‹ค.

๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ด์ƒํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ถ„๋ช…... ํ•œ์ ์ด ์—†๋Š”๋ฐ..
์•Œ๊ณ ๋ณด๋‹ˆ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ž์ฒด์—์„œ ์œ ์ €๋ฅผ ๋งŒ๋“ค๊ณ ,
๊ทธ๊ฒƒ์„ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์— ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋‚˜์˜จ ์ƒํƒœ์ฝ”๋“œ๊ฐ€ 403 (๊ถŒํ•œ์ด ์—†๋‹ค)๊ฐ€ ๋‚˜์˜จ๊ฒƒ๋„ ๊ทธ ๋•Œ๋ฌธ์ธ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ๋ ๊นŒ?

@Configuration
@EnableWebSecurity
public class SpringConfig extends WebSecurityConfigurerAdapter{

}

์ด๊ฑธ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ ์ ์šฉ๋˜๋Š” ์‹œํ๋ฆฌํ‹ฐ๋Š” ๋” ์ด์ƒ ์ ์šฉ์ด ์•ˆ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
๊ณผ์—ฐ ์‚ฌ์‹ค์ผ๊นŒ?

๋‚ด๊ฐ€ ๋†“์น˜๊ณ  ์žˆ๋Š”๊ฒŒ ์žˆ์„๊นŒ?

์ผ๋‹จ, ๊ฐ•์˜์—์„œ ์ง€์‹œํ•œ๋Œ€๋กœ ์ง„ํ–‰ํ•ด๋ณด์ž.
๊ฐ•์˜ํ•ด์„œ๋Š” ํŒจ์Šค์›Œ๋“œ ์ธ์ฝ”๋”๋ฅผ ๋งŒ๋“ค๋ผ๊ณ  ์ง€์‹œํ–ˆ๋‹ค.,

@Bean
  public PasswordEncoder passwordEncoder() {
    return PasswordEncoderFactories.createDelegatingPasswordEncoder();
  }

์ด ์ฝ”๋“œ๋Š” ๋‹ค์–‘ํ•œ ํŒจ์Šค์›Œ๋“œ์ธ์ฝ”๋”ฉ๋ฐฉ๋ฒ•?์„ prefixํ˜•ํƒœ๋กœ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ™•์ธ๊ฒฐ๊ณผ ์Šคํ”„๋ง5์— ์ด๋Ÿฌํ•œ ๋‚ด์šฉ์ด ์ถ”๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ „์— ๋งŒ๋“ค์—ˆ๋˜ ํšŒ์›๊ธฐ๋Šฅ?๋„ ์ถ”๊ฐ€ํ•˜์ž.
UserDetailsService์„ AccountService๋กœ ๋งŒ๋“ค์—ˆ์—ˆ๋‹ค.
๊ทธ๊ฒƒ์„ ์ด์šฉํ•˜์ž.

@Override
  protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth
        .userDetailsService(accountService)
        .passwordEncoder(passwordEncoder);

  }

์ด์ œ ์Šคํ”„๋ง์‹œํ๋ฆฌํ‹ฐ๋Š” accountService์™€ passowrdEncoder๋ฅผ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
๊ทผ๋ฐ ์ด๊ฒƒ์„ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ๋Š” ์—†์„๊นŒ?
๋‹คํ–‰ํžˆ๋„ ์ด๊ฒƒ์„ ๋นˆ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.

 @Bean
  @Override
  public AuthenticationManager authenticationManagerBean() throws Exception {
    return super.authenticationManagerBean();
  }

์ด๋ ‡๊ฒŒ ๋“ฑ๋กํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.
์ด์ œ ํŠน์ • url์€ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๊ฐ€ ์ ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰์•„๋ณด์ž.

 @Override
  public void configure(WebSecurity web) throws Exception {
    web.ignoring().mvcMatchers("/docs/**")
        .requestMatchers(PathRequest.toStaticResources().atCommonLocations());
  }

์–ด๋””์„œ ๋ถ€ํ„ฐ ์ž˜๋ชป๋œ๊ฑฐ์ง€...
ํŽ˜์ด์ง€๊ฐ€ ์—†๋‹ค๊ณ  ํ•œ๋‹ค.
ํฐ์ผ์ด๋‹ค.... ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•ด์•ผ๋˜๋‚˜ ์•„๋‹ˆ๋ฉด ๋งŒ๋“ค์–ด์•ผ๋ ๊นŒ?

์˜๋ฌธ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ... restApi๊ณต๋ถ€๋Š” ์—ฌ๊ธฐ์„œ ๋งˆ์น˜๊ณ 
2๋‹ฌ๋’ค์— ๋‹ค์‹œ restAPI๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๊ณต๋ถ€ํ•ด์„œ ์˜ฌ๋ฆฌ๋„๋กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ๊ฑฐ ๊ณต๋ถ€ํ•ด์•ผ์ง€!

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€

Designed by JB FACTORY