Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 45 additions & 25 deletions src/main/java/com/marklogic/mgmt/ManageClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,30 +37,49 @@ public ManageClient() {
}

public ManageClient(ManageConfig config) {
initialize(config);
setManageConfig(config);
}

public void initialize(ManageConfig config) {
this.manageConfig = config;
if (logger.isInfoEnabled()) {
logger.info("Initializing ManageClient with manage config of: " + config);
}
this.restTemplate = RestTemplateUtil.newRestTemplate(config);

if (!config.getUsername().equals(config.getAdminUsername())) {
if (logger.isInfoEnabled()) {
logger.info("Initializing ManageClient with admin config, admin user: " + config.getAdminUsername());
}

RestConfig rc = new RestConfig(config.getHost(), config.getPort(), config.getAdminUsername(), config.getAdminPassword());
rc.setScheme(config.getScheme());
rc.setConfigureSimpleSsl(config.isConfigureSimpleSsl());
rc.setHostnameVerifier(config.getHostnameVerifier());
rc.setSslContext(config.getSslContext());
this.adminRestTemplate = RestTemplateUtil.newRestTemplate(rc);
} else {
this.adminRestTemplate = restTemplate;
}
/**
* Use setManageConfig instead.
*
* @param config
*/
@Deprecated
public void initialize(ManageConfig config) {
setManageConfig(config);
}

/**
* Uses the given ManageConfig instance to construct a Spring RestTemplate for communicating with the Manage API.
* In addition, if adminUsername on the ManageConfig instance differs from username, then a separate RestTemplate is
* constructed for making calls to the Manage API that need an admin user (as noted elsewhere, these are usually
* calls for creating users/roles/privileges that only need "manage-admin" and "security", but that's typically
* an admin user).
*
* @param config
*/
public void setManageConfig(ManageConfig config) {
this.manageConfig = config;
if (logger.isInfoEnabled()) {
logger.info("Initializing ManageClient with manage config of: " + config);
}
this.restTemplate = RestTemplateUtil.newRestTemplate(config);

if (!config.getUsername().equals(config.getAdminUsername())) {
if (logger.isInfoEnabled()) {
logger.info("Initializing ManageClient with admin config, admin user: " + config.getAdminUsername());
}

RestConfig rc = new RestConfig(config.getHost(), config.getPort(), config.getAdminUsername(), config.getAdminPassword());
rc.setScheme(config.getScheme());
rc.setConfigureSimpleSsl(config.isConfigureSimpleSsl());
rc.setHostnameVerifier(config.getHostnameVerifier());
rc.setSslContext(config.getSslContext());
this.adminRestTemplate = RestTemplateUtil.newRestTemplate(rc);
} else {
this.adminRestTemplate = restTemplate;
}
}

/**
Expand Down Expand Up @@ -243,15 +262,16 @@ public HttpEntity<String> buildXmlEntity(String xml) {

protected void logRequest(String path, String contentType, String method) {
if (logger.isInfoEnabled()) {
logger.info(String.format("Sending %s %s request as user '%s' to path: %s", contentType, method,
manageConfig.getUsername(), path));
String username = manageConfig != null ? manageConfig.getUsername() : "(unknown)";
logger.info(String.format("Sending %s %s request as user '%s' to path: %s", contentType, method, username, path));
}
}

protected void logAdminRequest(String path, String contentType, String method) {
if (logger.isInfoEnabled()) {
String username = manageConfig != null ? manageConfig.getUsername() : "(unknown)";
logger.info(String.format("Sending %s %s request as user with admin role '%s' to path: %s", contentType,
method, manageConfig.getUsername(), path));
method, username, path));
}
}

Expand Down
14 changes: 12 additions & 2 deletions src/main/java/com/marklogic/mgmt/admin/AdminManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,18 @@ public AdminManager() {
}

public AdminManager(AdminConfig adminConfig) {
this.adminConfig = adminConfig;
this.restTemplate = RestTemplateUtil.newRestTemplate(adminConfig);
setAdminConfig(adminConfig);
}

/**
* Uses the given AdminConfig instance to construct a Spring RestTemplate for communicating with Manage API
* endpoints on port 8001.
*
* @param adminConfig
*/
public void setAdminConfig(AdminConfig adminConfig) {
this.adminConfig = adminConfig;
this.restTemplate = RestTemplateUtil.newRestTemplate(adminConfig);
}

public void init() {
Expand Down