이번 작업은 [인텔리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
[책]스프링 부트 시작하기 리뷰_2 (0) | 2019.12.25 |
---|---|
[책]스프링 부트 시작하기 리뷰_1 (0) | 2019.12.24 |
인텔리J+Gradle+SpringBoot2개발 캐시와 에러페이지 구현_7 (0) | 2019.12.22 |
타임리프 템플릿 CRUD 테스트 (0) | 2019.12.21 |
인텔리J+Gradle+SpringBoot2개발 글쓰기구현_5 (0) | 2019.12.20 |
댓글 영역