
# 认证方式
根据不同的认证方式，客户端初始化有三种方式，可根据需要选择其中一种。
#### AK/SK认证
参数ak、sk、regionCode和graphEndpoint如何填写见[初始化参数获取](https://support.huaweicloud.com/devg-ges/ges_05_0005.html)。
```
import com.huawei.ges.graph.v1.GESGraphClient;  // 内存版客户端
import com.huawei.ges.graph.v1.persistence.GESGraphPersistenceClient;  // 持久化版客户端
import com.huawei.ges.graph.v1.auth.aksk.GesGraphAkSkCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.http.HttpConfig;
import java.util.Arrays;
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全
// 本示例以ak和sk保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
String regionCode = "";
String graphEndpoint = "";
ICredential auth = new GesGraphAkSkCredentials().withAk(ak).withSk(sk).withRegionCode(regionCode);
HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig();
// 内存版客户端
GESGraphClient gesGraphClient = GESGraphClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
// 持久化版客户端
GESGraphPersistenceClient gesGraphPersistenceClient = GESGraphPersistenceClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
```
#### 密码认证
参数domainName、userName、password、projectId 、iamEndPoint和graphEndpoint如何填写见[初始化参数获取](https://support.huaweicloud.com/devg-ges/ges_05_0005.html)。
```
import com.huawei.ges.graph.v1.GESGraphClient;  // 内存版客户端
import com.huawei.ges.graph.v1.persistence.GESGraphPersistenceClient;  // 持久化版客户端
import com.huawei.ges.graph.v1.auth.password.GesGraphPasswordCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.http.HttpConfig;
import java.util.Arrays;
// 认证用的密码硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全
// 本示例以密码保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_PWD
String password = System.getenv("HUAWEICLOUD_SDK_PWD");
String domainName = "";
String userName = "";
String projectId = "";
String iamEndPoint = "";
String graphEndpoint = "";
ICredential auth = new GesGraphPasswordCredentials(userName, domainName, password, projectId, Arrays.asList(iamEndPoint));
HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig();
// 内存版客户端
GESGraphClient gesGraphClient = GESGraphClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
// 持久化版客户端
GESGraphPersistenceClient gesGraphPersistenceClient = GESGraphPersistenceClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
```
#### Token认证
参数authToken和graphEndpoint如何填写见[初始化参数获取](https://support.huaweicloud.com/devg-ges/ges_05_0005.html)。
```
import com.huawei.ges.graph.v1.GESGraphClient;  // 内存版客户端
import com.huawei.ges.graph.v1.persistence.GESGraphPersistenceClient;  // 持久化版客户端
import com.huawei.ges.graph.v1.auth.token.GesGraphTokenCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.http.HttpConfig;
import java.util.Arrays;
String authToken = "";
String graphEndpoint = "";
ICredential auth = new GesGraphTokenCredentials().withXAuthToken(authToken);
HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig();
// 内存版客户端
GESGraphClient gesGraphClient = GESGraphClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
// 持久化版客户端
GESGraphPersistenceClient gesGraphPersistenceClient = GESGraphPersistenceClient.newBuilder().withCredential(auth).withEndpoints(Arrays.asList(graphEndpoint)).withHttpConfig(httpConfig).build();
```
