com.force.api没有通过access_token获取数据,为什么?

com.force.api without passing the access_token getting the data, why?

我正在使用由 maven 依赖项提供的 REST API 调用销售人员。

<!-- Force REST API -->
<dependency>
    <groupId>com.frejo</groupId>
    <artifactId>force-rest-api</artifactId>
    <version>0.0.39</version>
</dependency>

我已经实现了下面的代码,但我想知道不发送 access_token 我是如何得到结果的?那不是不安全或者它是如何实施的吗?继续进行此操作会很好吗?API?

public class ForceApiExample {
    public static void main(String[] args) {
        ForceApi api = new ForceApi(new ApiConfig()
                .setUsername("XXX@xy.com")
                .setPassword("XXX")
                .setClientId("XXXXXMB8EGsF3NRtJ0")
                .setClientSecret("XXX"));

        ApiSession session = api.getSession();
        String accessToken = session.getAccessToken();
        System.out.println("ACCESS_TOKEN : "+accessToken);


        List<Map> result = api.query("SELECT name FROM Account").getRecords();
        System.out.println("RESULT : "+result.size());
    }
}

结果如下:

ACCESS_TOKEN : 00D7F0000001I8v!ARgAQB8tHuuquPRL5Z4uj4TBJG0cg0dJYBxy00jPhioEWKI86RlHqgXKSM0DfSTWHYVLl5i9HbbPxjXlgxlUP7XmLKejKrP4
RESULT : 535

实际上 Salesforce 在发出请求时在内部向客户端提供 authentication token。对于 REST API Salesforce 使用 OAuth 2.0 进行身份验证。存在不同种类的 OAuth 身份验证过程。其中之一是通过用户凭据。当您使用用户凭据发送请求时,您实际上是在要求 Salesforce 为您提供访问令牌。收到请求后 Salesforce 验证凭据并发回访问令牌。但是这里不能使用refresh token,因为用户没有直接给app授权。

关注Understanding Authenticationlink了解更多详情。