Enviar pesquisa
Carregar
Spring social の基礎
•
8 gostaram
•
3,535 visualizações
Takuya Iwatsuka
Seguir
2016/03/09 にJSUGのイベントでの発表に使用した資料です.
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 39
Baixar agora
Baixar para ler offline
Recomendados
Spring I/O 2015 報告
Spring I/O 2015 報告
Takuya Iwatsuka
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Takuya Iwatsuka
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
正和 井岡
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
俺的 Ignite update 萌えポイント portal&arm, compute, network -
俺的 Ignite update 萌えポイント portal&arm, compute, network -
Yui Ashikaga
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発
Chihiro Ito
Keycloak & midPoint の紹介
Keycloak & midPoint の紹介
Hiroyuki Wada
Mais conteúdo relacionado
Mais procurados
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
Tommy Ludwig
Spring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
心 谷本
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
Satoru Yoshida
Spring tools4
Spring tools4
Takuya Iwatsuka
OpenStack東京サミットに向けて
OpenStack東京サミットに向けて
shintaro mizuno
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
NTT DATA OSS Professional Services
Ladder of cqrs+es
Ladder of cqrs+es
Masaki Toyoshima
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例
Fukaya Akifumi
OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級
Takashi Natsume
Spring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へ
Masatoshi Fujino
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
EMC Japan
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
SORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみた
Takanori Suzuki
OpenStackSDK with Ansible
OpenStackSDK with Ansible
Hideki Saito
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Kentaro Ishizuka
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
Yuki Yamashita
Mais procurados
(20)
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
SpringOne 2015 報告会 - Lattice + Spring Cloud Netflix
Spring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
Spring tools4
Spring tools4
OpenStack東京サミットに向けて
OpenStack東京サミットに向けて
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
Ladder of cqrs+es
Ladder of cqrs+es
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keycloak拡張入門
Keycloak拡張入門
マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例
OpenStackアップストリーム活動実践 中級
OpenStackアップストリーム活動実践 中級
Spring BootでHello Worldのその先へ
Spring BootでHello Worldのその先へ
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
SORACOM S+Cameraを利用して在庫チェックをやってみた
SORACOM S+Cameraを利用して在庫チェックをやってみた
OpenStackSDK with Ansible
OpenStackSDK with Ansible
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
TungstenFabricでOpenStackとk8sをラクラク管理
TungstenFabricでOpenStackとk8sをラクラク管理
Destaque
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
Takuya Iwatsuka
Password validation with Passay
Password validation with Passay
Takuya Iwatsuka
Securing Grails Applications
Securing Grails Applications
Burt Beckwith
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Uehara Junji
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Kiyotaka Oku
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
라한사 아
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
Yusuke Yamamoto
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
こわくない Git
こわくない Git
Kota Saito
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Destaque
(10)
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
Password validation with Passay
Password validation with Passay
Securing Grails Applications
Securing Grails Applications
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
こわくない Git
こわくない Git
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Semelhante a Spring social の基礎
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Takuya Iwatsuka
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
アシアル株式会社
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
Makoto Kakuta
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Junya Katada
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
和也 大木
IETF96 Update oauth tokbind
IETF96 Update oauth tokbind
Kaoru Maeda
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone papers
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Takuya Iwatsuka
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
Daiyu Hatakeyama
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaS
Kensaku Komatsu
20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ
IoTビジネス共創ラボ
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
JOYZO
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
Ryu Yamashita
○○ as Code(LL Diver)
○○ as Code(LL Diver)
Yoshiyuki Takano
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
Semelhante a Spring social の基礎
(20)
Spring I/O 2018 報告会
Spring I/O 2018 報告会
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会
Spring I/O 2018 報告会
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
IETF96 Update oauth tokbind
IETF96 Update oauth tokbind
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaS
20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
kintoneで実践するIoTハンズオン -90分で挑戦!kintone & AWS IoT連携-
○○ as Code(LL Diver)
○○ as Code(LL Diver)
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Spring social の基礎
1.
Copyright©2016 NTT corp.
All Rights Reserved. Spring Socialの基礎 2016年3月9日 NTT ソフトウェアイノベーションセンタ 岩塚 卓弥
2.
2Copyright©2016 NTT corp.
All Rights Reserved. • 名前:岩塚 卓弥 • 所属:NTT ソフトウェアイノベーションセンタ • 専門:ソフトウェア工学 / プログラミング言語理論 グループ向けフレームワーク整備の担当でSpringを利用 自己紹介
3.
3Copyright©2016 NTT corp.
All Rights Reserved. Spring Social Main Project Spring Social Core Spring Social Facebook Spring Social Twitter Spring Social LinkedIn Incubator Project Spring Social GitHub Spring Social TripIt コア以外は各API用のサブプロジェクト
4.
4Copyright©2016 NTT corp.
All Rights Reserved. 多数のCommunity Project
5.
5Copyright©2016 NTT corp.
All Rights Reserved. 何はともあれ、まずはサンプルを動かしてみる https://github.com/spring-projects/spring-social-samples さあ、はじめよう!
6.
6Copyright©2016 NTT corp.
All Rights Reserved. 何はともあれ、まずはサンプルを動かしてみる https://github.com/spring-projects/spring-social-samples さあ、はじめよう! !?
7.
7Copyright©2016 NTT corp.
All Rights Reserved. 何はともあれ、まずはサンプルを動かしてみる https://github.com/spring-projects/spring-social-samples さあ、はじめよう! _人人人人人人人人_ > BUILD FAILED <  ̄Y^Y^Y^Y^Y^Y^Y ̄
8.
8Copyright©2016 NTT corp.
All Rights Reserved. • 解説付きの別のサンプルがある https://spring.io/guides/gs/accessing-facebook https://spring.io/guides/gs/accessing-twitter • 次スライドからFacebookのサンプルの中身を見ていく • まずは動かしてみる • こっちは正しく動くのでご安心を Spring Social + Bootのサンプル
9.
9Copyright©2016 NTT corp.
All Rights Reserved. プロジェクト構成の確認 Javaファイルは2つだけ
10.
10Copyright©2016 NTT corp.
All Rights Reserved. pom.xml Spring Social Facebookを使用 テンプレートにThymeleafを使用
11.
11Copyright©2016 NTT corp.
All Rights Reserved. application.property OAuth Server(ここではFacebook)が OAuth Clientを識別・認証するために発行する情報 ダミー値なので差し替える必要がある アプリケーション登録の方法は割愛 !
12.
12Copyright©2016 NTT corp.
All Rights Reserved. Application.java お馴染みの定義
13.
13Copyright©2016 NTT corp.
All Rights Reserved. HomeController.java (1/2) Facebook? ConnectionRepository? “/”へのリクエストマッピング
14.
14Copyright©2016 NTT corp.
All Rights Reserved. HomeController.java (2/2) このあたりでAPIを叩いているのは見れば分かる 他のAPIの使用方法も大体想像できる リクエストマッピングは?
15.
15Copyright©2016 NTT corp.
All Rights Reserved. facebookConnect.html “/connect/facebook”へPOST リクエストマッピングは?
16.
16Copyright©2016 NTT corp.
All Rights Reserved. • 使うのはとても簡単そう • Dependencyの追加 • AppID / AppSecretを設定 • ControllerとViewを実装 でもちょっとマジカル(に見える) ・Facebook, ConnectionRepositoryオブジェクト ・”/connect/facebook”へのリクエストマッピング → 以降、裏で何が起こっているのかを見ていく サンプルを通して
17.
17Copyright©2016 NTT corp.
All Rights Reserved. Spring Socialの接続処理の大まかな流れ ConnectionController ConnectionFactory<A> Connection<A> ConnectionRepository OAuth Server 接続用のリクエストマッピングを定義 接続処理を移譲 OAuth Danth 永続化
18.
18Copyright©2016 NTT corp.
All Rights Reserved. 接続処理の大まかな流れ ConnectionController ConnectionFactory<A> Connection<A> ConnectionRepository OAuth Server 接続用のリクエストマッピングを定義 接続用処理を移譲 OAuth Danth 永続化 Auto Configurationで 暗黙的に生成
19.
19Copyright©2016 NTT corp.
All Rights Reserved. Spring MVCのController 接続の作成・更新・切断のためのリクエストマッピングを定義 接続処理を適切なConnectionFactoryに移譲 ConnectionController GET /connect GET /connect/{providerId} POST /connect/{providerId} GET /connect/{providerId}?code={code} DELETE /connect/{providerId} DELETE /connect/{providerId}/{providerUserId} GET /connect/{providerId}?oauth_token={request_token} &oauth_verifier={verifier} OAuth2用 OAuth1用
20.
20Copyright©2016 NTT corp.
All Rights Reserved. • OAuth Serverとの接続処理を担うクラス • Service Providerごとに継承したクラスが存在 • AppID/AppSecretはConnectionFactoryに設定 ConnectionFactory ConnectionFactory<A> OAuth2ConnectionFactory<A> OAuth1ConnectionFactory<A> FacebookConnectionFactory TwitterConnectionFactory
21.
21Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server /connect/{providerId}へPOST
22.
22Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server appIDを取得
23.
23Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server appIDとリダイレクトURLを渡す アクセスしたいリソースもパラメータで指定する リダイレクトURLはデフォルトで/connect/{providerId}
24.
24Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server アクセス許可を与える
25.
25Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server 認可コードを付けてリダイレクト
26.
26Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server appSecretを渡してアクセストークンを取得 アクセスにはRestTemplateを使用
27.
27Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server Connectionを作成
28.
28Copyright©2016 NTT corp.
All Rights Reserved. • ConnectionControllerとConnectionFactoryがア クセストークン取得時のやり取りを隠蔽 OAuth Danceの隠蔽 Connection Controller Connection Factory OAuth Server /connect/{providerId} へリダイレクトしてViewを表示
29.
29Copyright©2016 NTT corp.
All Rights Reserved. • 実際にはConnectionControllerには ConnectionFactoryではなく ConnectionFactoryLocatorを設定する • ConnectionFactoryLocatorを利用することで適切な ConnectionFactoryに接続処理を移譲できる 補足 ConnectionFactoryLocator FacebookConnectionFactory TwitterConnectionFactory . . . 複数のOAuth Serverに 対応するためには 複数のConnectionFactoryが 必要
30.
30Copyright©2016 NTT corp.
All Rights Reserved. • 文字通りOAuth Serverとの「接続」を表すクラス • 以下の基本的な情報やアクセストークンを保持 • OAuth Server名 • ユーザID • ユーザ表示名 • プロフィールURL • アイコン画像URL • Connection#getApi で取得したオブジェクトを利用 してAPIを叩く • Connection<Facebook>なら,Facebookオブジェクトが取 得できる Connection
31.
31Copyright©2016 NTT corp.
All Rights Reserved. API利用の例 Connection<Facebook> fbConnection = ...; //Connectionを取得 Facebook fb = fbConnection.getApi(); // APIを取得 List<String> friendIds = fb.friendOperations().getFriendIds(); // APIを叩く どんなAPIが利用できるかは当然Server次第 詳細はリファレンスを参照
32.
32Copyright©2016 NTT corp.
All Rights Reserved. • 作成したConnectionを永続化 • Connectionに対するCRUD処理を持つ • 接続時にConnectionControllerが保存してくれる • ユーザに対して複数のConnectionを保持できる • FacebookとTwitterそれぞれと連係する場合など • JDBC版とインメモリ版の2種類が提供されている • JdbcUsersConnectionRepository • InMemoryUsersConnectionRepository ConnectionRepository スキーマ定義(SQL)も提供されている Auto Configurationで作られるのはこっち DBに保存したければ差し替えが必要
33.
33Copyright©2016 NTT corp.
All Rights Reserved. ConnectionRepositoryからConnectionを取得 ConnectionRepository repository = ...; Connection<Facebook> fbConnection = repository.findPrimaryConnection(Facebook.class); Facebook fb = fbConnection != null ? fbConnection.getApi() : null ・ConnectionRepository自体はシングルユーザ前提 ・マルチユーザの場合にはユーザとConnectionRepositoryの 対応付けが必要 ・そのためにUsersConnectionRepositoryを使用 ・詳細は割愛 !
34.
34Copyright©2016 NTT corp.
All Rights Reserved. Spring SocialでOAuth Serverに接続するために必 要なもの • AppID / AppSecret • OAuth Clientの識別・認証情報 • ConnectionController • リクエストマッピングの定義 • ConnectionFactory • 接続処理の定義 • ConnectionRepository • Connectionの永続化 ここまでのまとめ Spring Bootでは Auto Configurationで作成 URLを叩くだけで接続できる
35.
35Copyright©2016 NTT corp.
All Rights Reserved. • OAuth Serverのアカウントを使ってサインイン • 自サービスへのログインやアカウント作成のために FacebookやTwitterのアカウント情報を使用する • 二つの方法から選択する • ProviderSignInControllerを使う方法 • ConnectionControllerと似たような使い方 • SpringSecurityを使わない場合に使用する • SocialAuthenticationFilterを使う方法 • SpringSecurityの認証の仕組みに乗っかって使用する Spring Socialのその他の機能
36.
36Copyright©2016 NTT corp.
All Rights Reserved. • 今まで提供されていないOAuth Server用のモジュール を作成することもできる • OAuthの接続処理等はSpring Socialの仕組みを利用で きる • APIをバインディングしたクラスや ConnectionFactory等,OAuth Serverに依存した部 分の実装が必要 新しいOAuth Serverのサポート
37.
37Copyright©2016 NTT corp.
All Rights Reserved. 例:Gitter APIへのバインディング … Roomクラスは要作成 各APIを叩く処理は要作成 RestTemplateを使用
38.
38Copyright©2016 NTT corp.
All Rights Reserved. • Spring Socialを使うと • OAuthを意識せずに各種SaaSのAPIを利用できる • 自サービスのログイン/アカウント作成にSaaSのアカウント情 報を利用できる • 新しいサービスのAPIへのサポートも可能 • BootのAuto Configurationによって • ConnectionControllerやConnectionFactory等が自動的に作 成される • 必要なのはappId/appSecretをプロパティ定義することだけ まとめ
39.
39Copyright©2016 NTT corp.
All Rights Reserved. • リファレンス • http://docs.spring.io/spring- social/docs/current/reference/htmlsingle/ 参考資料
Baixar agora