You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uoa-orcid-service/src/main/java/eu/dnetlib/uoaorcidservice/controllers/OrcidServiceCheckDeployCont...

75 lines
3.1 KiB
Java

package eu.dnetlib.uoaorcidservice.controllers;
import com.mongodb.BasicDBObject;
import com.mongodb.CommandResult;
import com.mongodb.DBObject;
import eu.dnetlib.uoaorcidservice.configuration.mongo.MongoConnection;
import eu.dnetlib.uoaorcidservice.configuration.properties.MongoConfig;
import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig;
import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@CrossOrigin(origins = "*")
public class OrcidServiceCheckDeployController {
private final Logger log = Logger.getLogger(this.getClass());
@Autowired
private MongoConnection mongoConnection;
@Autowired
private MongoConfig mongoConfig;
@Autowired
private OrcidConfig orcidConfig;
@Autowired
private AESUtils aesUtils;
@RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)
public String hello() {
log.debug("Hello from uoa-orcid-service!");
return "Hello from uoa-orcid-service!";
}
@PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)")
@RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET)
public Map<String, String> checkEverything() {
Map<String, String> response = new HashMap<>();
MongoTemplate mt = mongoConnection.getMongoTemplate();
DBObject ping = new BasicDBObject("ping", "1");
try {
CommandResult answer = mt.getDb().command(ping);
response.put("Mongo try: error", answer.getErrorMessage());
} catch (Exception e) {
response.put("Mongo catch: error", e.getMessage());
}
response.put("orcidservice.mongodb.database", mongoConfig.getDatabase());
response.put("orcidservice.mongodb.host", mongoConfig.getHost());
response.put("orcidservice.mongodb.port", mongoConfig.getPort()+"");
response.put("orcidservice.mongodb.username", mongoConfig.getUsername() == null ? null : "[unexposed value]");
response.put("orcidservice.mongodb.password", mongoConfig.getPassword() == null ? null : "[unexposed value]");
response.put("orcidservice.orcid.apiURL", orcidConfig.getApiURL());
response.put("orcidservice.orcid.tokenURL", orcidConfig.getTokenURL());
response.put("orcidservice.orcid.clientId", orcidConfig.getClientId() == null ? null : "[unexposed value]");
response.put("orcidservice.orcid.clientSecret", orcidConfig.getClientSecret() == null ? null : "[unexposed value]");
response.put("orcidservice.encryption.password", aesUtils.getPassword() == null ? null : "[unexposed value]");
return response;
}
}