RestApi 만들기 - 스프링 시큐리티 설정 (13)
- SPRING START!/restAPI😢
- 2021. 3. 23. 00:36
나는 얼마전 스프링 시큐리티를 설치하고,
유저를 만들어서 진행을 한적이 있었다,.
그리고 오늘 프로잭트를 실행시켰다.
하지만 결과는 참담했다.
모든 테스트가 틀렸다고 나온다는 것을 알 수 있었다.
이상했다. 나는 분명... 한적이 없는데..
알고보니 스프링 시큐리티 자체에서 유저를 만들고,
그것을 모든 테스트 코드에 적용하기 때문이라고 했다.
그래서 나온 상태코드가 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를 새롭게 공부해서 올리도록하겠습니다. 다른거 공부해야지!
'SPRING START! > restAPI😢' 카테고리의 다른 글
RestApi 만들기 - 스프링 시큐리티 적용하기 (12) (0) | 2021.03.17 |
---|---|
RestApi 만들기 - 이벤트 수정 API구현 (11) (0) | 2021.03.11 |
RestApi 만들기 - 이벤트 조회 API구현 (10) (0) | 2021.03.09 |
RestApi 만들기 - 이벤트 목록 조회 API구현 (9) (0) | 2021.03.06 |
RestApi 만들기 - API인덱스 지점 만들기 (8) (0) | 2021.03.03 |