Newer
Older
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;
private String accessToken;
@PostConstruct
public void init() {
CustomAuthenticationData authn = (CustomAuthenticationData) ((OAuth2Authentication) request.getUserPrincipal()).getUserAuthentication();
userId = (String) authn.getPrincipal();
accessToken = (String) authn.getAttributes().get("access_token");
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;
}