@RequestMapping(method = RequestMethod.POST, value = "/token", produces = "application/json", consumes = "application/json")
public @ResponseBody
ResponseEntity<String> getToken(HttpServletRequest request) {
if(request.isSecure()) {
try {
String clientId = request.getParameter("client_id");
String clientSecret = request.getParameter("client_secret");
LOG.debug("Client: {} host: {}", clientId, request.getRemoteHost());
UserSession session = sessionManager.startSession(new BasicCredentials(clientId, request.getRemoteHost(), clientSecret));
LOG.debug("Loaded session: {}", session);
String responseMessage = String.format(GRANT_VALID, session.getAccessToken(), session.getSessionId(), "jasdb", 3600);
return new ResponseEntity<>(responseMessage, HttpStatus.OK);
} catch(JasDBSecurityException e) {
return getErrorResponse("Invalid credentials");
} catch(JasDBStorageException e) {
return getErrorResponse("Unknown error");
}
} else {
return getErrorResponse("Insecure connection");
}
}