Spring OAuth 적용기

우선 제가 테스트 하는 로컬 환경의 설정은 이렇습니다

스크린샷 2016-08-04 오전 11.35.37.png

서버 포트는 9090이고 contextpath는 api입니다

http://localhost:9090/api로 주소가 시작됩니다

테스트를 위해 해당 주소로 mapping을 만들었습니다

정상적으로 실행된다면 “Blind Interview Server Running” 이라는 문구가 나오겠죠

스크린샷 2016-08-04 오전 11.33.57.png

브라우저로 실행시켜보겠습니다

스크린샷 2016-08-04 오전 11.37.30.png

시큐리티에서 에러가 뜨네요

지금부터 시큐리티에서 token을 발급받고 발급받은 토큰으로 실행시키는 법을 확인해보겠습니다

저는 curl로 테스트를 진행하겠습니다

우선 토큰을 발급받기 위한 환경을 보겠습니다

스크린샷 2016-08-04 오전 11.39.31.png

@EnableResourceServer와 @EnableAuthorizationServer 어노테이션을 넣었습니다

application.properties에서는 해당 설정을 넣었습니다

스크린샷 2016-08-04 오전 11.40.41.png

해당 정보가 어떻게 사용되는지는 다음을 확인하면 될것 같습니다

스크린샷 2016-08-04 오전 11.42.18.png

아 제 해상도가 레티나라서 너무 좋아서 안보이네요

스크린샷 2016-08-04 오전 11.45.09.png

아 확대했는데도 안보이네요(레티나 짱짱맨)

스크린샷 2016-08-04 오전 11.45.53.png

(잘보이는군요)

해당 명령을 날렸습니다

curl ahea_client_id:ahea_client_secrit@localhost:9090/api/oauth/token -d grant_type=password -d client_id=ahea_client_id -d scope=read -d username=ahea -d password=ahea123

보면

curl {security.oauth2.client.client-id}:{security.oauth2.client.client-secret}@주소/oauth/token -d grant_type=password -d client_id={security.oauth2.client.client-id} -d scope=read -d username={security.user.name} -d password={security.user.password}

로 날린것을 확인할 수 있습니다 ( {var}는 application.properties 키 값을 말하는겁니다}

결과를 보면

{“access_token”:”211622d1-f256-4d23-9f77-a35ed7632396”,”token_type”:”bearer”,”refresh_token”:”ae2bf389-782b-40a2-b2a0-10da4e90f252”,”expires_in”:42976,”scope”:”read”}

이렇게 json으로 떨궈줍니다

이중 access_token값을 이용하여 api를 호출합니다 (나머지도 인증을 위해 저장해야 하는 값이니 클라이언트가 저장하고 있어야 합니다)

토큰을 이용해 api를 호출해봅니다

스크린샷 2016-08-04 오전 11.51.52.png

curl -H “Authorization: Bearer 211622d1-f256-4d23-9f77-a35ed7632396” “http://localhost:9090/api/"

다음과 같이 curl명령어를 날렸습니다

규칙은 다음과 같겠죠

curl -H “Authorization: Bearer {request_token}” “{api url}”

결과를 보니 해당 api가 정상적으로 호출되었습니다

만약 curl 을 이용하여 token헤더 없이 날린다면 다음과 같은 결과가 나옵니다

스크린샷 2016-08-04 오전 11.54.25.png

{“error”:”unauthorized”,”error_description”:”Full authentication is required to access this resource”}


  Reprint please specify: Ahea Team Study Blog Spring OAuth 적용기

 Previous
spring boot swagger 적용기 spring boot swagger 적용기
spring boot 프로젝트에 swagger를 적용했습니다 rest api를 문서화 하기 위해 어떤걸 쓸지 고민하는 중 swagger를 써보기로 했습니다 문서화에 있어 필수적으로 고민한것들이 있습니다 문서화가 자
2017-01-18
Next 
maven 외부 jar 추가 maven 외부 jar 추가
maven을 이용해서 개발하다보면 알아서 라이브러리를 관리해 줘서 편하지만 메이븐 중앙 리파지토리에서 포함 안된 외부 jar를 포함 시켜야 할때가 있다. 다른 회사들과 모듈연동이나 암호화할때 jar파일만 받아서 그
2017-01-11
  TOC