Spring MVC Apache Oltu 和 Salesforce 集成示例 OAUTH_APPROVAL_ERROR_GENERIC:身份验证期间发生意外错误
Spring MVC Apache Oltu and Salesforce Integration examples OAUTH_APPROVAL_ERROR_GENERIC : An unexpected error has occured during authentication
我在这里扩展问题:
我正在开发 Spring MVC + Apache Oltu + Salesforce 集成示例。在此示例中,我在 Salesforce 中创建了连接的应用程序,如下所示:
在这个例子中我使用的是:
- ACCESS_TOKEN_URL = "https://login.salesforce.com/services/oauth2/token"
- AUTHORIZATION_URL = "https://login.salesforce.com/services/oauth2/authorize";
OAuthBearerClientRequest 请求是什么?就像 Github 我用过 https://api.github.com/user
。销售人员的 URL 是多少?
这是从我的代码中调用的:
但授权中没有任何内容。
例如:OAuthBearerClientRequest
- 领英 -
https://api.linkedin.com/v1/people/~?oauth2_access_token=
- 脸书 -
https://graph.facebook.com/me/friends
- Github-
https://api.github.com/user
什么是销售人员?
这个URL也没有我想要的信息:https://developer.salesforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com#Obtaining_an_Access_Token_using_a_SAML_Bearer_Assertion。
我看到的错误:
error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration
我只得到了以下详细信息,仍在努力让它发挥作用
了解 OAuth 端点
OAuth 端点 是您用来向 Salesforce 发出 OAuth 身份验证请求的 URL。
在您的应用程序中发出身份验证请求时,您需要使用正确的 Salesforce OAuth 端点。主要的 OAuth 端点是:
- 授权: https://login.salesforce.com/services/oauth2/authorize
- 对于令牌请求: https://login.salesforce.com/services/oauth2/token
- 用于撤销 OAuth 令牌: https://login.salesforce.com/services/oauth2/revoke
所有端点都需要安全 HTTP (HTTPS)。每个 OAuth 流程都定义了您需要使用哪些端点以及您需要提供哪些请求数据。
如果您在沙盒组织上验证身份验证,请在上面列出的所有 OAuth 端点中使用“test.salesforce.com”而不是“login.salesforce.com”。
当我花了整整 2 周的时间,我得到了以下详细信息作为 URL 的一部分:
我能够解决问题,现在我也获得了授权代码,它再次获取了 access_token
和 refresh_token
等
{
"access_token":"00D7F0000001I8v!ARgAQDvQR1L4XtPVlSzgBQWwN7vi6an6wp2yVa2E.QeCuJFDmWfjU8UKJnZCY0hNHcISEj4u7aHTzTXKPrZwFO7e_2PjilYY",
"refresh_token":"5Aep8613hy0tHCYdhxJMolioLtSyVWkdY.qjUQIKBDHpKUfFk7DxakBkr.fqMfwxgDn5GuOHbU8EWoeGkNma4kJ",
"signature":"KggDhRHjf3/wmU85Cuz5HPriXpvZ7+9nyVMlwFWoizE=",
"scope":"refresh_token api full",
"id_token":"eyJraWQiOiIyMTAiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiYmdveG9KR0k4S1BGa1FvVlU1WlNJUSIsInN1YiI6Imh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20vaWQvMDBEN0YwMDAwMDAxSTh2VUFFLzAwNTdGMDAwMDAwbDJiZ1FBQSIsImF1ZCI6IjNNVkc5ZDguLnouaERjUEpaUEl6R0o1VVpEckw3Ykp0aEFRX3YwWUN4ekVlRzExSEkxWXdLTmZ2YVlmRHkwbXNKNmF6RTNFQ01COEVHc0YzTlJ0SjAiLCJpc3MiOiJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwiZXhwIjoxNTA4MDExNDA5LCJpYXQiOjE1MDgwMTEyODl9.gvzr9Eq5QpYmG3s8daf55ey9GP9O2SvBN_3LpmlDB334pS6cLzHZrq6Z-zH6mXmgNAD7OEyVhPVLlsm5Ln2iOPC3AtfFhadyGNHrtbwxG9GtaiCoTwsBQ7dtyx5fytZBQnDrKJ6EoshduJkRDbC9GzuBVjGU0dAluqiC8A_BoX4DJcbCetXwk4bS1MTaf7IJNYceZhsIbgaq1y7CBIwYtlJHLURbrct6hkPFQc65zPAZB6_SZD0uifFRptp52VEelJ0GKC03PvzAgPw2ofaoWkdq5f7pdAZQRpPUDCKcplB3whc4vk0fk5uMacDnJBNNRkds3SjKvx3X0Qg0pE0xm5ISac20WhEYzeDVtqmBeqqVes0ZFIC5t3hewWmrLicCAedaAWuKK5LnpKdhYoClw8Hmtt5y_ewf34TbSuzc6mQ9O6fMNs4nDBr5_20LuPC6Z5rPXb-GKNONAySa8rcLAB4hcRimWBLVMhrKFIcLc2WLYd1OvqgnoKc6gMh76_Ibha0R8veORbusgd9AYJoQEsPed5-LzFrczP0DX-PHD9NGOsT5b2t9daxy8sZ3t_vfo__6GCYG_Lq-Ee0JOEWaemHp6P6a8OTSufQkXiiYdAwe2iSHi1mF457mZhGR9f_IJzUFXzHF8lY8q6LGZI2uLOfFJX4qYFt3Cj6RXbIP4hQ",
"instance_url":"https://ap5.salesforce.com",
"id":"https://login.salesforce.com/id/00D7F0000001I8vUAE/0057F000000l2bgQAA",
"token_type":"Bearer",
"issued_at":"1508011289104"
}
现在我只关心使用 OAuthBearerClientRequest 到底需要调用什么 API ?
范围参考 URL:https://help.salesforce.com/articleView?id=remoteaccess_oauth_scopes.htm&type=0
我遇到了 OAuthBearerClientRequest API 的问题,不知道为什么。在这里提出了一个问题:Could not access resource: 401 [{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}] - works only in RestClient plugin .
与我使用 RestTemplate 实现的相同,它工作正常。
我在这里扩展问题:
我正在开发 Spring MVC + Apache Oltu + Salesforce 集成示例。在此示例中,我在 Salesforce 中创建了连接的应用程序,如下所示:
在这个例子中我使用的是:
- ACCESS_TOKEN_URL = "https://login.salesforce.com/services/oauth2/token"
- AUTHORIZATION_URL = "https://login.salesforce.com/services/oauth2/authorize";
OAuthBearerClientRequest 请求是什么?就像 Github 我用过 https://api.github.com/user
。销售人员的 URL 是多少?
这是从我的代码中调用的:
但授权中没有任何内容。
例如:OAuthBearerClientRequest
- 领英 -
https://api.linkedin.com/v1/people/~?oauth2_access_token=
- 脸书 -
https://graph.facebook.com/me/friends
- Github-
https://api.github.com/user
什么是销售人员?
这个URL也没有我想要的信息:https://developer.salesforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com#Obtaining_an_Access_Token_using_a_SAML_Bearer_Assertion。
我看到的错误:
error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration
我只得到了以下详细信息,仍在努力让它发挥作用
了解 OAuth 端点 OAuth 端点 是您用来向 Salesforce 发出 OAuth 身份验证请求的 URL。
在您的应用程序中发出身份验证请求时,您需要使用正确的 Salesforce OAuth 端点。主要的 OAuth 端点是:
- 授权: https://login.salesforce.com/services/oauth2/authorize
- 对于令牌请求: https://login.salesforce.com/services/oauth2/token
- 用于撤销 OAuth 令牌: https://login.salesforce.com/services/oauth2/revoke
所有端点都需要安全 HTTP (HTTPS)。每个 OAuth 流程都定义了您需要使用哪些端点以及您需要提供哪些请求数据。 如果您在沙盒组织上验证身份验证,请在上面列出的所有 OAuth 端点中使用“test.salesforce.com”而不是“login.salesforce.com”。
当我花了整整 2 周的时间,我得到了以下详细信息作为 URL 的一部分:
我能够解决问题,现在我也获得了授权代码,它再次获取了 access_token
和 refresh_token
等
{
"access_token":"00D7F0000001I8v!ARgAQDvQR1L4XtPVlSzgBQWwN7vi6an6wp2yVa2E.QeCuJFDmWfjU8UKJnZCY0hNHcISEj4u7aHTzTXKPrZwFO7e_2PjilYY",
"refresh_token":"5Aep8613hy0tHCYdhxJMolioLtSyVWkdY.qjUQIKBDHpKUfFk7DxakBkr.fqMfwxgDn5GuOHbU8EWoeGkNma4kJ",
"signature":"KggDhRHjf3/wmU85Cuz5HPriXpvZ7+9nyVMlwFWoizE=",
"scope":"refresh_token api full",
"id_token":"eyJraWQiOiIyMTAiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiYmdveG9KR0k4S1BGa1FvVlU1WlNJUSIsInN1YiI6Imh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20vaWQvMDBEN0YwMDAwMDAxSTh2VUFFLzAwNTdGMDAwMDAwbDJiZ1FBQSIsImF1ZCI6IjNNVkc5ZDguLnouaERjUEpaUEl6R0o1VVpEckw3Ykp0aEFRX3YwWUN4ekVlRzExSEkxWXdLTmZ2YVlmRHkwbXNKNmF6RTNFQ01COEVHc0YzTlJ0SjAiLCJpc3MiOiJodHRwczovL2xvZ2luLnNhbGVzZm9yY2UuY29tIiwiZXhwIjoxNTA4MDExNDA5LCJpYXQiOjE1MDgwMTEyODl9.gvzr9Eq5QpYmG3s8daf55ey9GP9O2SvBN_3LpmlDB334pS6cLzHZrq6Z-zH6mXmgNAD7OEyVhPVLlsm5Ln2iOPC3AtfFhadyGNHrtbwxG9GtaiCoTwsBQ7dtyx5fytZBQnDrKJ6EoshduJkRDbC9GzuBVjGU0dAluqiC8A_BoX4DJcbCetXwk4bS1MTaf7IJNYceZhsIbgaq1y7CBIwYtlJHLURbrct6hkPFQc65zPAZB6_SZD0uifFRptp52VEelJ0GKC03PvzAgPw2ofaoWkdq5f7pdAZQRpPUDCKcplB3whc4vk0fk5uMacDnJBNNRkds3SjKvx3X0Qg0pE0xm5ISac20WhEYzeDVtqmBeqqVes0ZFIC5t3hewWmrLicCAedaAWuKK5LnpKdhYoClw8Hmtt5y_ewf34TbSuzc6mQ9O6fMNs4nDBr5_20LuPC6Z5rPXb-GKNONAySa8rcLAB4hcRimWBLVMhrKFIcLc2WLYd1OvqgnoKc6gMh76_Ibha0R8veORbusgd9AYJoQEsPed5-LzFrczP0DX-PHD9NGOsT5b2t9daxy8sZ3t_vfo__6GCYG_Lq-Ee0JOEWaemHp6P6a8OTSufQkXiiYdAwe2iSHi1mF457mZhGR9f_IJzUFXzHF8lY8q6LGZI2uLOfFJX4qYFt3Cj6RXbIP4hQ",
"instance_url":"https://ap5.salesforce.com",
"id":"https://login.salesforce.com/id/00D7F0000001I8vUAE/0057F000000l2bgQAA",
"token_type":"Bearer",
"issued_at":"1508011289104"
}
现在我只关心使用 OAuthBearerClientRequest 到底需要调用什么 API ?
范围参考 URL:https://help.salesforce.com/articleView?id=remoteaccess_oauth_scopes.htm&type=0
我遇到了 OAuthBearerClientRequest API 的问题,不知道为什么。在这里提出了一个问题:Could not access resource: 401 [{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}] - works only in RestClient plugin .
与我使用 RestTemplate 实现的相同,它工作正常。