Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

SpringSecuritySocial

No description
by

arahan sa

on 5 June 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of SpringSecuritySocial

SpringSecuritySocial
알아보자
만든 이유

예.. 최근에 사용했던 기술(시큐리티+소셜로그인)을 설명할 일이 있었는데,
워낙 예전에 한 것이다보니 준비가 덜 되서
설명을 제대로 못했었습니다.
이미 예전에 PPT로 정리를 했었지만 이번엔 프레지로 된 구조도를 쉽게 보면서 기능에 맞춰 적어볼까 합니다.
아차, 본 소스의 주인되시는 분부터..
핀란드의 Petri라는 개발자분의 예제 소스분석입니다.
(이게 꼭 소셜로그인 정답은 아닙니다^^)
일단 구조도1
ExamserDetails .. 기억해둡시당
구조도2
RepositoryUserDetailsService 관련부분.기억
으아~_~
너무 많고 블로그
번역글 아몰랑.
길고 이상한 왈도체같아요

음..-_-..보통 설정부터 기능구현 시나리오순으로 설명하는 편인데...
그럼,
핵심부터 봐볼까요?
로그인 시 이 ExampleUserDetails를 들고 있는데,
SocialUser라는 클래스를 상속합니다.
이 SocialUser클래스는 security.core.userdetails의 User를 상속하는 동시에 social.security의 SocialUserDetails를 구현합니다. 시큐리티 적용이 되는 일반로그인, 소셜로그인이 가능해집니다.
일반 로그인
SocialUser가 상속한 User 클래스는 UserDetails를 구현함
소셜로그인
SocialUser가 구현한 SocialUserDeatai로 load
직접 로그인을 처리할 때
(예: 회원가입후 로그인)
그럼, 회원가입은요?
다음과 같이 social.connect.web에 있는 ProviderSignInUtils 라는 유틸로
소셜코넥션정보가 있는 지 확인하며
회원가입을 하게 됩니다.
소셜가입시도시 (예 : auth/facebook )
이 매핑주소로 다시 리다이렉트됩니다.
흔한 회원가입...
0. 로그인
흔한 jsp 파일..
commandName이 컨트롤러에서 썼던 user 기억..
signInProvider가 소셜정보 이늄인데,
null유무에 따라 다르게 가져감~
1. 회원가입
그럼, 설정은 어떻게 하죠?
먼저 properties를 써줍니다. 아! yaml 설정같은 것도 있습니다. 이게 꼭 정답은 아님..
스프링 시큐리티 설정에,
소셜서비스 빈도 등록해줍니다.
configure메소드 하단도 참조
소셜콘텍스트도 등록을 해줍니다.
소셜키 등록하고, UsersConnectionRepository등록..설정은 이정도로 된 것같고, 소셜코넥션 정보 암호화를 보겠습니다.
2. 설정
방금전 암호화설정을 조금 파볼까요?
UsersConnectionRepository부분 말이죠..
이 JDBCsConnectionRepository는 social.connect.jdbc 패키지에 위치하여 UsersConenctionRepository 인터페이스를 구현합니다.

TextEncryptor 를 세번째 인자로 받습니다.
그럼 이 세번째 인자에 대해 조금 더 알아봅니다.
스프링 문서를
살펴보면 다음과
같은 구조를
보실 수가 있습니다
스프링 문서에 맞춰서 문자열를 암호화복호화를 해보면서 테스트하면 다음과 같은 에러가 납니다. 왜일까요?
예 방금전의 Encyptor 클래스는 AES256 암호화를 하는데, 다음과 같이 자바의 기본정책이 AES128까지 지원하므로 여기서는 미통상법에 맞춰서 jre에 들어갈
jar파일을 다시 다운받아서 덮어씌워주겠습니다.
참고 링크 : http://bit.ly/ar_aes
예.. 보시는바와 같이 암호화복호화 통과..
이제 여기서 나오는 Encryptor를 방금전의 UsersConenctionRepository 인자로 넣어주시면 됩니당..
한가지 더, 적자면 이 메소드는
UsenectironRepository 안의 메소드인데 jdbc, select문으로 유저정보를 불러오게 됩니다. 즉 key-value DB에는 안 맞습니다...흠..일단 정리는 이정도로...
3. 좀 더
감사합니다.

소셜 시큐리티 로그인은
http://adunhansa.tistory.com/192
여기에 예전에 번역해뒀습니다.
깃헙소스도 여기에..
Full transcript