SlideShare a Scribd company logo
1 of 16
Pós – Graduação Engenharia de Software JEE - 
Spring Social Integração com o Linkedin
Agenda: 
• Introdução 
• Objetivo 
• Configuração 
• Linkedin API 
• Etapas Resumidas do OAuth 
• Descrição do projeto 
• Utilização 
• Estudo de Caso 
• Conclusão
Introdução: 
• O Spring Social é uma nova extensão do Spring Framework que 
facilita a integração entre aplicações Java e provedores SaaS, 
abstraindo os detalhes dos protocolos de autenticação e de acesso e 
oferecendo uma API Java por meio da qual as funcionalidades e 
informações oferecidas pelo serviço podem ser acessadas. 
• O SaaS é um conceito da computação em nuvem (cloud computing) e 
consiste em um modelo de distribuição de software no qual as 
informações (ex.: sua lista de amigos no Facebook, seus seguidores 
no Twitter, seus contatos no Linkedin) e as funcionalidades (ex.: curtir 
algo publicado por um amigo no Facebook, publicar um texto de até 
140 caracteres no Twitter) são centralizadas (na “nuvem”) e podem ser 
acessadas por diferentes clientes (chamados de thin clients ou 
“clientes magros” por conterem somente a interface com o usuário).
Objetivo: 
• O objetivo deste projeto é mostrar o Spring Social com 
integração ao LinkedIn, através do provedor SaaS (Software as a 
Service), em português, Software como um Serviço, com o 
protocolo de autenticação e acesso OAuth (Open Autorizition). A 
aplicação deverá acessar a conta do usuário, exibir o perfil e a 
sua lista de contatos.
Configuração: 
Módulos básicos do spring social obtidos no site: 
http://mvnrepository.com/ 
Tabela 1. Módulos Spring Social 
Nome Descrição 
spring-social-core Suporte ao cliente do Spring Framework e OAuth. 
spring-social-config Suporte de configuração Java e XML para o Spring Social. 
spring-social-security 
Apoio à integração Spring Security. 
spring-social-web ConnectController do Spring Social, que utiliza um 
Framework de conexão para gerenciar conexões em um 
ambiente de aplicação web.
Dependências do projeto no pom.xml 
<!-- Spring dependencies --> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-webmvc</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-aop</artifactId> 
<version>${spring.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.social</groupId> 
<artifactId>spring-social-core</artifactId> 
<version>${spring-social.version}</version> 
</dependency>
<dependency> 
<groupId>org.springframework.social</groupId> 
<artifactId>spring-social-linkedin</artifactId> 
<version>${spring-social.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.social</groupId> 
<artifactId>spring-social-web</artifactId> 
<version>${spring-social.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-core</artifactId> 
<version>${spring.security.version}</version> 
</dependency>
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-crypto</artifactId> 
<version>${spring.security.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-web</artifactId> 
<version>${spring.security.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-config</artifactId> 
<version>${spring.security.version}</version> 
</dependency>
Linkedin API 
Passos básicos necessários para obter alguns dados do LinkedIn. 
• Solicite uma chave de API e chave secreta usando o seu perfil do 
LinkedIn desta página: https://www.linkedin.com/secure/developer . 
• Em seu aplicativo, redirecionar o usuário para a página de 
autenticação e fornecer a sua chave API. 
• O usuário autentica-se no site do LinkedIn. 
• Se não for feito antes, o usuário precisa autorizar o aplicativo para 
agir em nome dele. 
• Usuário será redirecionado para o seu site com um token pedido e um 
código de verificação. 
• Obter um token de acesso usando o token de solicitação e o código 
de verificação. 
• Comece interagindo com linkedin usando sua chave api e o token de 
acesso obtido.
Etapas Resumidas do OAuth: 
Em resumo, no fluxo de Web Server, as etapas de alto nível são as 
seguintes: 
• O usuário se conecta a seu provedor de SaaS; 
• Um código de autorização é enviado para seu aplicativo; 
• O aplicativo usa o código de autorização para recuperar um token de 
acesso; 
• O token de acesso é usado para recuperar dados privados do usuário;
Descrição do projeto: 
Vamos criar com o Spring social LinkedIn uma integração através do 
provedor SaaS(Software-a-as-Service) com o protocolo de 
autenticação OAuth (Open Autorizition) no qual pode se autenticar, 
usando o serviço OAuth pela chave API e chave Secreta, obtendo o 
acesso ao Token e o call-back, usando o OAuth e seus componentes 
fornecidos pelo projeto Spring Social. Depois da autenticação será 
possível exibir a lista de contatos e acessar o perfil do usuário.
Utilização: 
Utilizando o provedor SaaS com o protocolo Oauth 2.0, com 
módulo spring-social-core, conectando-se aos provedores de 
serviços individuais que o spring fornece através de serviços 
básicos.
Pontos Positivos e Negativos: 
• Pontos Positivos: implementação livre, mais seguro pelo 
protocolo OAuth 2.0 que é mais simples e fácil de utilizar e a 
vantagem de um conjunto de outras comunidades conduzidas 
por módulos. 
• Pontos Negativos: o efeito estufa que o protocolo OAuth 
permite.
Estudo de caso: 
• Apresentar uma aplicação desenvolvida em Java usando o 
framework Spring Social com Integração ao LinkedIn; 
• Serão abordados o uso dos códigos, mostrando alguns 
detalhes técnicos, sobre a tecnologia e padrões do Spring; 
• Desenvolver uma aplicação, utilizando o provedor 
SaaS(Software-as-a-Service) com o protocolo de 
autenticação e acesso OAuth (Open Autorizition) no qual o 
usuário poderá acessar dados de seu perfil e a sua lista de 
contatos.
Conclusão: 
O principal objetivo desse projeto foi apresentar o framework Spring 
Social com integração ao LinkedIn através do provedor 
SaaS(Software as a Service) com o protocolo de segurança OAuth 
(Open Autorizition) com padrões básicos do Spring, mostrando 
como é fácil a sua implementação e segura para os usuários se 
autenticarem e permiti que sua aplicação possa ser vista por outras 
aplicações. 
Um último ponto para se observar aqui é que tudo isso acontece 
usando SSL para garantir que as chaves, os segredos, os códigos 
etc. estão escondidos de olhares indiscretos,garantindo assim a 
privacidade do usuário.
Agradecimentos: 
Obrigada. 
Adriana A. C. Telles 
E-mail: telles19@gmail.com 
Vânia Santos França 
E-mail: vniadefranca@gmail.com

More Related Content

Similar to Spring social

Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntasdmaiavieira
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesGuilherme Pereira Silva
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSAnderson Contreira
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaLambda3
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018André Luiz Forchesatto
 
Criando e Usando Helpers
Criando e Usando HelpersCriando e Usando Helpers
Criando e Usando HelpersJoaoVagner
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Rafael Oliveira
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Gerência de identidades federadas em nuvens
Gerência de identidades federadas em nuvensGerência de identidades federadas em nuvens
Gerência de identidades federadas em nuvensjarddel
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações AndroidFelipe Silveira
 
Autenticação Visual - EspWeb 2010
Autenticação Visual - EspWeb 2010Autenticação Visual - EspWeb 2010
Autenticação Visual - EspWeb 2010ribhonorato
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indianahellequin
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsFábio Rosato
 

Similar to Spring social (20)

UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
Open Social
Open SocialOpen Social
Open Social
 
Open Social + Perguntas
Open Social + PerguntasOpen Social + Perguntas
Open Social + Perguntas
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectada
 
Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018Spring Security e Spring Boot Aula - 2018
Spring Security e Spring Boot Aula - 2018
 
Criando e Usando Helpers
Criando e Usando HelpersCriando e Usando Helpers
Criando e Usando Helpers
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Gerência de identidades federadas em nuvens
Gerência de identidades federadas em nuvensGerência de identidades federadas em nuvens
Gerência de identidades federadas em nuvens
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
Web services
Web servicesWeb services
Web services
 
Autenticacao visual
Autenticacao visualAutenticacao visual
Autenticacao visual
 
Autenticação Visual - EspWeb 2010
Autenticação Visual - EspWeb 2010Autenticação Visual - EspWeb 2010
Autenticação Visual - EspWeb 2010
 
Autenticacao visual
Autenticacao visualAutenticacao visual
Autenticacao visual
 
Intro aspnet webapi
Intro aspnet webapiIntro aspnet webapi
Intro aspnet webapi
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indiana
 
Um pouco sobre APIs
Um pouco sobre APIsUm pouco sobre APIs
Um pouco sobre APIs
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIs
 

Spring social

  • 1. Pós – Graduação Engenharia de Software JEE - Spring Social Integração com o Linkedin
  • 2. Agenda: • Introdução • Objetivo • Configuração • Linkedin API • Etapas Resumidas do OAuth • Descrição do projeto • Utilização • Estudo de Caso • Conclusão
  • 3. Introdução: • O Spring Social é uma nova extensão do Spring Framework que facilita a integração entre aplicações Java e provedores SaaS, abstraindo os detalhes dos protocolos de autenticação e de acesso e oferecendo uma API Java por meio da qual as funcionalidades e informações oferecidas pelo serviço podem ser acessadas. • O SaaS é um conceito da computação em nuvem (cloud computing) e consiste em um modelo de distribuição de software no qual as informações (ex.: sua lista de amigos no Facebook, seus seguidores no Twitter, seus contatos no Linkedin) e as funcionalidades (ex.: curtir algo publicado por um amigo no Facebook, publicar um texto de até 140 caracteres no Twitter) são centralizadas (na “nuvem”) e podem ser acessadas por diferentes clientes (chamados de thin clients ou “clientes magros” por conterem somente a interface com o usuário).
  • 4. Objetivo: • O objetivo deste projeto é mostrar o Spring Social com integração ao LinkedIn, através do provedor SaaS (Software as a Service), em português, Software como um Serviço, com o protocolo de autenticação e acesso OAuth (Open Autorizition). A aplicação deverá acessar a conta do usuário, exibir o perfil e a sua lista de contatos.
  • 5. Configuração: Módulos básicos do spring social obtidos no site: http://mvnrepository.com/ Tabela 1. Módulos Spring Social Nome Descrição spring-social-core Suporte ao cliente do Spring Framework e OAuth. spring-social-config Suporte de configuração Java e XML para o Spring Social. spring-social-security Apoio à integração Spring Security. spring-social-web ConnectController do Spring Social, que utiliza um Framework de conexão para gerenciar conexões em um ambiente de aplicação web.
  • 6. Dependências do projeto no pom.xml <!-- Spring dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-core</artifactId> <version>${spring-social.version}</version> </dependency>
  • 7. <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-linkedin</artifactId> <version>${spring-social.version}</version> </dependency> <dependency> <groupId>org.springframework.social</groupId> <artifactId>spring-social-web</artifactId> <version>${spring-social.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>${spring.security.version}</version> </dependency>
  • 8. <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-crypto</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>${spring.security.version}</version> </dependency>
  • 9. Linkedin API Passos básicos necessários para obter alguns dados do LinkedIn. • Solicite uma chave de API e chave secreta usando o seu perfil do LinkedIn desta página: https://www.linkedin.com/secure/developer . • Em seu aplicativo, redirecionar o usuário para a página de autenticação e fornecer a sua chave API. • O usuário autentica-se no site do LinkedIn. • Se não for feito antes, o usuário precisa autorizar o aplicativo para agir em nome dele. • Usuário será redirecionado para o seu site com um token pedido e um código de verificação. • Obter um token de acesso usando o token de solicitação e o código de verificação. • Comece interagindo com linkedin usando sua chave api e o token de acesso obtido.
  • 10. Etapas Resumidas do OAuth: Em resumo, no fluxo de Web Server, as etapas de alto nível são as seguintes: • O usuário se conecta a seu provedor de SaaS; • Um código de autorização é enviado para seu aplicativo; • O aplicativo usa o código de autorização para recuperar um token de acesso; • O token de acesso é usado para recuperar dados privados do usuário;
  • 11. Descrição do projeto: Vamos criar com o Spring social LinkedIn uma integração através do provedor SaaS(Software-a-as-Service) com o protocolo de autenticação OAuth (Open Autorizition) no qual pode se autenticar, usando o serviço OAuth pela chave API e chave Secreta, obtendo o acesso ao Token e o call-back, usando o OAuth e seus componentes fornecidos pelo projeto Spring Social. Depois da autenticação será possível exibir a lista de contatos e acessar o perfil do usuário.
  • 12. Utilização: Utilizando o provedor SaaS com o protocolo Oauth 2.0, com módulo spring-social-core, conectando-se aos provedores de serviços individuais que o spring fornece através de serviços básicos.
  • 13. Pontos Positivos e Negativos: • Pontos Positivos: implementação livre, mais seguro pelo protocolo OAuth 2.0 que é mais simples e fácil de utilizar e a vantagem de um conjunto de outras comunidades conduzidas por módulos. • Pontos Negativos: o efeito estufa que o protocolo OAuth permite.
  • 14. Estudo de caso: • Apresentar uma aplicação desenvolvida em Java usando o framework Spring Social com Integração ao LinkedIn; • Serão abordados o uso dos códigos, mostrando alguns detalhes técnicos, sobre a tecnologia e padrões do Spring; • Desenvolver uma aplicação, utilizando o provedor SaaS(Software-as-a-Service) com o protocolo de autenticação e acesso OAuth (Open Autorizition) no qual o usuário poderá acessar dados de seu perfil e a sua lista de contatos.
  • 15. Conclusão: O principal objetivo desse projeto foi apresentar o framework Spring Social com integração ao LinkedIn através do provedor SaaS(Software as a Service) com o protocolo de segurança OAuth (Open Autorizition) com padrões básicos do Spring, mostrando como é fácil a sua implementação e segura para os usuários se autenticarem e permiti que sua aplicação possa ser vista por outras aplicações. Um último ponto para se observar aqui é que tudo isso acontece usando SSL para garantir que as chaves, os segredos, os códigos etc. estão escondidos de olhares indiscretos,garantindo assim a privacidade do usuário.
  • 16. Agradecimentos: Obrigada. Adriana A. C. Telles E-mail: telles19@gmail.com Vânia Santos França E-mail: vniadefranca@gmail.com