Skip to content

Commit

Permalink
upgrade spring-social and added twitter integration
Browse files Browse the repository at this point in the history
  • Loading branch information
jettro committed Mar 14, 2011
1 parent 084b6a4 commit ed96bc3
Show file tree
Hide file tree
Showing 20 changed files with 344 additions and 236 deletions.
74 changes: 50 additions & 24 deletions pom.xml
Expand Up @@ -48,10 +48,11 @@
</build>

<properties>
<slf4j.version>1.5.8</slf4j.version>
<spring.version>3.0.4.RELEASE</spring.version>
<spring.security.version>3.0.3.RELEASE</spring.security.version>
<slf4j.version>1.6.1</slf4j.version>
<spring.version>3.1.0.M1</spring.version>
<spring.security.version>3.1.0.RC1</spring.security.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-social.version>1.0.0.M2</spring-social.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -81,14 +82,49 @@
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>1.0.0.M1</version>
<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-twitter</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>

<!-- Scribe OAuth 1.0 Consumer API -->
<dependency>
<groupId>org.scribe</groupId>
<artifactId>scribe</artifactId>
<version>1.0.7</version>
<version>1.1.1</version>
</dependency>

<!-- web dependencies -->
Expand Down Expand Up @@ -122,26 +158,16 @@
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
</exclusions>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>

<!-- other dependencies -->

</dependencies>

<repositories>
Expand Down

This file was deleted.

@@ -0,0 +1,65 @@
package nl.gridshore.samples.springoauth.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.social.linkedin.LinkedInApi;
import org.springframework.social.linkedin.LinkedInProfile;
import org.springframework.social.linkedin.connect.LinkedInServiceProvider;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.request.WebRequest;

import java.util.List;

/**
* <p>Controller that handles all linkedin api requests. It contains methods to request information from linkedin.
* All authentication and authorization requests are handled by the spring provided controller
* {@see org.springframework.social.web.connect.ConnectController}.</p>
*
* @author Jettro Coenradie
*/
@Controller
public class LinkedinController {

private LinkedInServiceProvider linkedInServiceProvider;

@Autowired
public LinkedinController(LinkedInServiceProvider linkedInServiceProvider) {
this.linkedInServiceProvider = linkedInServiceProvider;
}

/**
* Handles the request to obtain all the connections from the current logged in user.
*
* @param request Spring provided WebRequest
* @return String representing the name of the view to show
*/
@RequestMapping(value = "/connect/linkedin/connections", method = RequestMethod.GET)
public String connections(WebRequest request) {
request.setAttribute("connections", linkedinApi().getConnections(), WebRequest.SCOPE_REQUEST);

return "linkedin/connections";
}

/**
* Handles the request to obtain the profile of the current logged in user
*
* @param request Spring provided WebRequest
* @return String representing the name of the view to show
*/
@RequestMapping(value = "/connect/linkedin/profile", method = RequestMethod.GET)
public String profile(WebRequest request) {

request.setAttribute("profile", linkedinApi().getUserProfile(), WebRequest.SCOPE_REQUEST);
return "linkedin/profile";
}

private LinkedInApi linkedinApi() {
User principal = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return linkedInServiceProvider.getConnections(principal.getUsername()).get(0).getServiceApi();
}


}

0 comments on commit ed96bc3

Please sign in to comment.