개발강의정리/Spring

[스프링 기반 REST API 개발] 5-9. 이벤트 API 점검

nineDeveloper 2020. 4. 9.
728x90

스프링 기반 REST API 개발

5. REST API 보안 적용

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/spring-rest-api-study/tree/chap05-09_event_api_inspect

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/spring_rest-api/dashboard

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

9. 이벤트 API 점검

ResourceServerConfig Authentication 수정

GET /api/** 요청에 대해 anonymous 에게만 허용하겠다는 옵션을 permitAll 모두에게 허용하는 옵션으로 변경

@Override
public void configure(HttpSecurity http) throws Exception {
    http
        .anonymous()
            .and()
        .authorizeRequests()
            .mvcMatchers(HttpMethod.GET, "/api/**")
                .permitAll()
            .anyRequest().authenticated()
            .and()
        .exceptionHandling() // 인증이 잘못됐다던가 권한이 없는 경우 발생하는 예외중에 접근권한이 없는 것은
            .accessDeniedHandler(new OAuth2AccessDeniedHandler()); // OAuth2AccessDeniedHandler 를 사용함 403으로 status 응답을 내보내줌
}

토큰 발급 받기

  • POST /oauth/token
  • BASIC authentication(Authorization) 헤더
    • client Id(myApp) + client secret(pass)
  • 요청 본문(Body) 폼

토큰 갱신하기

  • POST /oauth/token
  • BASIC authentication 헤더
    • client Id(myApp) + client secret(pass)
  • 요청 본문 폼
    • token: 처음에 발급받았던 refersh 토큰
    • grant_type: refresh_token

이벤트 목록 조회 API

  • 로그인 안 했을때
    • 이벤트를 만드는 링크를 보여주지 않음
  • 로그인 했을 때
    • 이벤트 생성 링크 제공

이벤트 조회

EventController에서 현재 사용자 정보를 참조해야함

  • 로그인 했을 때
    • 이벤트 Manager인 경우에는 이벤트 수정 링크 제공
728x90

댓글

💲 추천 글