상세 컨텐츠

본문 제목

인텔리J+Gradle+SpringBoot2개발 로그인구현_8

JSP·자바·코틀린

by 김일국 2019. 12. 23. 16:46

본문

이번 작업은 [인텔리J+Gradle+SpringBoot2개발 로그인구현_8]을 진행합니다.
 -기술참조 http://wonwoo.ml/index.php/post/1288

 - 위 내용은 Github의 OAuth2로 인증(authorize)받고, 스프링시큐리티 DB(User테이블)이용한 권한(authentication)으로 구현됩니다.

 - 요즘은 홈페이지에서 회원 가입을 받는 부분이 법적으로 엄격해 져서(유후 사용자 처리 및 비번 변경 공지 + 사용자 정보 보존 및 사용내역 발송 등) 차라리 회원가입을 받지 않는 방식도 좋을 듯 합니다. 그래서, OAuth2 외부 인증을 사용해 보았습니다.

- 스프링 부트에서 OAuth2인증 구현및 스프링시큐리티 연동은 쉽지는 않습니다. 게다가, 참조한 소스는 버전1.5.x 인데, 제 작업소스는 버전2.2.0 으로 마이그레이션 하면서 작업하니까 더 에로가 있었으나, 해결은 되었습니다.

- OAuth2 를 사용할 외부 인증업체(페이스북, 트위터, Github 등) 중에서 깃허브를 사용(아래는 현재 사이트에서 인증에 사용된 사용자가 2명으로 나타나는 것을 확인 할 수 있습니다.)

- 타임리프(thymeleaf)에서 authentication 인증결과 가져오는 소스(아래)

<span sec:authentication="name">userName</span>
role:<span sec:authentication="principal.authorities"></span>

<li class="nav-item" sec:authorize="hasRole('ROLE_USER')">
<a class="nav-link" style="text-decoration:underline"><span sec:authentication="principal.github"></span> 님 로인중</a>
</li>

- 현재 인증사용자별 권한 할당된 화면(아래)

- 깃 허브를 사용할 때, 수정할 파일3개 아래에 명시( application.properties, GitProperties.java, SecurityConfig.java )


- 오늘 작업소스(그래들+스프링부트2.2.0버전)

timespace_blog_20191223.zip
- 마이그레이션 이전 Git참조소스(메이븐+스프링부트1.5.1버전): https://github.com/wonwoo/spring-boot-clean-blog

- 마이그레이션시 참조:

   스프링부트 1.x에서 -> 2.x으로 버전업 시 OAuth2 사용처리

   타임리프 템플릿 권한: https://siyoon210.tistory.com/102

  스프링시큐리티 적용 후 h2-console 접근권한 풀기: https://github.com/HomoEfficio/dev-tips/blob/master/Spring%20Security%EC%99%80%20h2-console%20%ED%95%A8%EA%BB%98%20%EC%93%B0%EA%B8%B0.md

Ps.
다음은 이 주제의 마지막인 [인텔리J+Gradle+SpringBoot2개발 배포_9]을 진행할 예정 입니다.
 -기술참조 http://wonwoo.ml/index.php/post/1328

timespace_blog_20191223.zip
8.24MB

관련글 더보기

댓글 영역