我正在開發一個Spring Java salesforce應用程序,並使用Database SDK 22.0.8-BETA和OAuth 2.0來驗證用戶登錄。基本上使用Salesforce作爲身份提供者並獲得連接以使用Salesforce中的數據。我碰到了什麼似乎是OAuth SDK問題。OAuth ForceServiceConnector允許訪問任何Salesforce用戶的同一連接
我的情況如下:
對於第一個用戶它工作得很好,他得到的OAuth令牌,重定向到應用頁面,並連接到組織所有的偉大工程! 現在的問題!獲取第二個瀏覽器會話並嘗試使用不同的ORG上的不同用戶登錄到相同的應用程序,OAuth再次運行並讓第二個用戶進入應用程序,但此用戶現在與用戶#1具有相同的連接,因此它們共享SDK提供的相同連接儘管它們來自完全不同的ORG。我必須在Spring或安全配置中丟失一些簡單的東西,使2個用戶連接到不同的組織,並獲得單獨的連接。我嘗試了很多不同的設置,ForceServiceConnector始終將第一個初始認證用戶的連接返回給所有傳入會話,無論它們來自哪裏,它是什麼瀏覽器或它是什麼用戶。因此,任何擁有Salesforce用戶ID的人都會根據其用戶身份驗證始終獲得相同的#1用戶連接,而不是自己的ORG連接。
任何人都知道這個問題或者如何配置這個SDK的Spring Security來允許用戶通過OAuth獲得他們的單獨連接?
我使用此代碼在控制器獲取用戶信息:
@Controller
public class HomeController {
@Inject
ForceServiceConnector oauth_app_connector;
@RequestMapping(value="/", method=RequestMethod.GET)
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, ConnectionException {
uid = oauth_app_connector.getConnection().getUserInfo().getUserName();
...........
希望有人這樣做或已經解決了這個可以點我正確的方向。