Skip to content

Commit

Permalink
OAuth with SFDC works
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesward committed May 16, 2012
1 parent 0c11819 commit e442d8a
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 21 deletions.
31 changes: 30 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@
<name>force-rest-api repository on GitHub</name>
<url>http://jesperfj.github.com/force-rest-api/repository/</url>
</repository>
<repository>
<id>spring-milestone</id>
<name>Spring Framework Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
Expand All @@ -31,6 +36,20 @@
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!--
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
-->
<!--
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>1.0.0.M6a</version>
</dependency>
-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
Expand All @@ -46,6 +65,16 @@
<artifactId>force-rest-api</artifactId>
<version>0.0.15</version>
</dependency>
<dependency>
<groupId>com.force.sdk</groupId>
<artifactId>force-oauth</artifactId>
<version>22.0.8-BETA</version>
</dependency>
<dependency>
<groupId>com.force.sdk</groupId>
<artifactId>force-springsecurity</artifactId>
<version>22.0.8-BETA</version>
</dependency>
<dependency>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
Expand Down
22 changes: 15 additions & 7 deletions src/main/java/com/example/service/PersonServiceImpl.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.example.service;

import com.force.api.ApiConfig;
import com.force.api.ApiSession;
import com.force.api.ForceApi;
import com.force.api.QueryResult;
import org.springframework.beans.factory.annotation.Autowired;
import com.force.sdk.oauth.context.ForceSecurityContextHolder;
import com.force.sdk.oauth.context.SecurityContext;
import org.springframework.stereotype.Service;

import com.example.model.Person;
Expand All @@ -12,21 +13,28 @@

@Service
public class PersonServiceImpl implements PersonService {

private ForceApi getForceApi() {
SecurityContext sc = ForceSecurityContextHolder.get();

ApiSession s = new ApiSession();
s.setAccessToken(sc.getSessionId());
s.setApiEndpoint(sc.getEndPointHost());

@Autowired
private ApiConfig apiConfig;
return new ForceApi(s);
}

public void addPerson(Person person) {
new ForceApi(apiConfig).createSObject("contact", person);
getForceApi().createSObject("contact", person);
}

public List<Person> listPeople() {
QueryResult<Person> res = new ForceApi(apiConfig).query("SELECT Id, FirstName, LastName FROM contact", Person.class);
QueryResult<Person> res = getForceApi().query("SELECT Id, FirstName, LastName FROM contact", Person.class);
return res.getRecords();
}

public void removePerson(String id) {
new ForceApi(apiConfig).deleteSObject("contact", id);
getForceApi().deleteSObject("contact", id);
}

}
25 changes: 17 additions & 8 deletions src/main/resources/applicationContext.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
xmlns:fss="http://www.salesforce.com/schema/springsecurity"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.salesforce.com/schema/springsecurity http://www.salesforce.com/schema/springsecurity/force-springsecurity-1.3.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">

<context:annotation-config />
<context:component-scan base-package="com.example" />

<mvc:annotation-driven/>

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
Expand All @@ -18,9 +22,14 @@
<property name="suffix" value=".jsp" />
</bean>

<bean class="com.force.api.ApiConfig">
<property name="username" value="#{systemEnvironment['FORCE_USERNAME']}"/>
<property name="password" value="#{systemEnvironment['FORCE_PASSWORD']}"/>
</bean>
<fss:oauth>
<fss:oauthInfo endpoint="http://login.salesforce.com"
oauth-key="#{systemEnvironment['OAUTH_CLIENT_KEY']}"
oauth-secret="#{systemEnvironment['OAUTH_CLIENT_SECRET']}"/>
</fss:oauth>

<security:http use-expressions="true">
<security:intercept-url pattern="/people/*" access="isAuthenticated()" />
</security:http>

</beans>
25 changes: 20 additions & 5 deletions src/main/webapp/WEB-INF/web.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<display-name>Spring-Hibernate-Template</display-name>


<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>contextAttribute</param-name>
<param-value>org.springframework.web.servlet.FrameworkServlet.CONTEXT.spring</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Expand All @@ -21,8 +34,10 @@
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/people/*</url-pattern>
</servlet-mapping>

</web-app>

0 comments on commit e442d8a

Please sign in to comment.