-
Notifications
You must be signed in to change notification settings - Fork 165
/
Copy pathInstancePrincipalsAuthenticationDetailsProviderWithResteasyClientExample.java
107 lines (90 loc) · 5.03 KB
/
InstancePrincipalsAuthenticationDetailsProviderWithResteasyClientExample.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
* This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
*/
import com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider;
import com.oracle.bmc.http.ResteasyClientConfigurator;
import com.oracle.bmc.identity.IdentityClient;
import com.oracle.bmc.identity.model.CreateUserDetails;
import com.oracle.bmc.identity.model.UpdateUserDetails;
import com.oracle.bmc.identity.requests.CreateUserRequest;
import com.oracle.bmc.identity.requests.DeleteUserRequest;
import com.oracle.bmc.identity.requests.GetUserRequest;
import com.oracle.bmc.identity.requests.UpdateUserRequest;
import com.oracle.bmc.identity.responses.CreateUserResponse;
import com.oracle.bmc.identity.responses.GetUserResponse;
import com.oracle.bmc.identity.responses.UpdateUserResponse;
import javax.ws.rs.client.ClientBuilder;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
/**
* An example to demonstrate how to use resteasy client with
* InstancePrincipalsAuthenticationDetailsProvider.
*/
public class InstancePrincipalsAuthenticationDetailsProviderWithResteasyClientExample {
public static void main(String[] args) {
// The following line is only necessary for this example because of our configuration in
// resources/META-INF/services/javax.ws.rs.client.ClientBuilder
// which enables Jersey by default. If you are using Resteasy by default, this line is not
// necessary
System.setProperty(
ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY,
"org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder");
final InstancePrincipalsAuthenticationDetailsProvider provider;
try {
provider =
InstancePrincipalsAuthenticationDetailsProvider.builder()
.additionalFederationClientConfigurator(
new ResteasyClientConfigurator())
.build();
} catch (Exception e) {
if (e.getCause() instanceof SocketTimeoutException
|| e.getCause() instanceof ConnectException) {
System.out.println(
"This sample only works when running on an OCI instance. Are you sure you’re running on an OCI instance? For more info see: https://docs.oracle.com/iaas/Content/Identity/Tasks/callingservicesfrominstances.htm");
return;
}
throw e;
}
final IdentityClient identityClient =
IdentityClient.builder()
.additionalClientConfigurator(new ResteasyClientConfigurator())
.build(provider);
// TODO: Pass in the compartment ID as an argument, or enter the value directly here (if
// known)
final String compartmentId = args[0];
System.out.println(compartmentId);
try {
CreateUserRequest createUserRequest =
CreateUserRequest.builder()
.createUserDetails(
CreateUserDetails.builder()
.compartmentId(compartmentId)
.name("ResteasyUser")
.description("Creating test user for ResteasyExample!")
.build())
.build();
CreateUserResponse createUserResponse = identityClient.createUser(createUserRequest);
System.out.println(createUserResponse.getUser().getDescription());
UpdateUserRequest updateUserRequest =
UpdateUserRequest.builder()
.userId(createUserResponse.getUser().getId())
.updateUserDetails(
UpdateUserDetails.builder()
.description("Updating test user for ResteasyExample!")
.build())
.build();
UpdateUserResponse updateUserResponse = identityClient.updateUser(updateUserRequest);
GetUserRequest getUserRequest =
GetUserRequest.builder().userId(updateUserResponse.getUser().getId()).build();
GetUserResponse getUserResponse = identityClient.getUser(getUserRequest);
System.out.println(getUserResponse.getUser().getDescription());
DeleteUserRequest deleteUserRequest =
DeleteUserRequest.builder().userId(getUserResponse.getUser().getId()).build();
identityClient.deleteUser(deleteUserRequest);
} finally {
identityClient.close();
System.clearProperty(ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY);
}
}
}