Skip to content
KeepAliveController.java 1.34 KiB
Newer Older
package it.inaf.ia2.gms.controller;

import it.inaf.ia2.aa.ServiceLocator;
import it.inaf.ia2.aa.UserManager;
import it.inaf.ia2.gms.authn.SessionData;
Sonia Zorba's avatar
Sonia Zorba committed
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Sonia Zorba's avatar
Sonia Zorba committed
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class KeepAliveController {

    private static final Logger LOG = LoggerFactory.getLogger(KeepAliveController.class);

    @Autowired
    private SessionData sessionData;

    private final UserManager userManager;

    public KeepAliveController() {
        userManager = ServiceLocator.getInstance().getUserManager();
    }
Sonia Zorba's avatar
Sonia Zorba committed
    @GetMapping(value = "/keepAlive", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<?> keepAlive(HttpServletRequest request) {
        LOG.trace("Keepalive called");
        if (sessionData.getExpiresIn() < 60) {
            sessionData.setUser(userManager.refreshToken(request));
            LOG.trace("RAP token refreshed");
        }
Sonia Zorba's avatar
Sonia Zorba committed
        // empty JSON object response
        return ResponseEntity.ok(new HashMap<>());