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 checkEverything() { Map 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; } }