Skip to content
SessionData.java 1.3 KiB
Newer Older
Sonia Zorba's avatar
Sonia Zorba committed
package it.inaf.ia2.gms.authn;

import it.inaf.ia2.gms.persistence.UsersRepository;
import it.inaf.ia2.gms.persistence.model.User;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.SessionScope;

@Component
@SessionScope
public class SessionData {

    @Autowired
    private HttpServletRequest request;

    @Autowired
    private UsersRepository usersRepository;

    private String userId;
Sonia Zorba's avatar
Sonia Zorba committed

    @PostConstruct
    public void init() {
        CustomAuthenticationData authn = (CustomAuthenticationData) ((OAuth2Authentication) request.getUserPrincipal()).getUserAuthentication();
        userId = (String) authn.getPrincipal();
        accessToken = (String) authn.getAttributes().get("access_token");
Sonia Zorba's avatar
Sonia Zorba committed

        if (!usersRepository.findById(userId).isPresent()) {
            User user = new User();
            user.setId(userId);
            usersRepository.save(user);
        }
    }

    public String getUserId() {
        return userId;
    }

    public String getAccessToken() {
        return accessToken;
    }