package eu.dnetlib.repo.manager.config; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.http.HttpHeaders; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; import org.springframework.session.web.http.CookieSerializer; import org.springframework.session.web.http.DefaultCookieSerializer; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; @Configuration @EnableRedisHttpSession public class RedisConfiguration { private static Logger LOGGER = Logger.getLogger(RedisConfiguration.class); @Value("${services.provide.redis.host}") private String host; @Value("${services.provide.redis.port:6379}") private String port; @Value("${services.provide.redis.password}") private String password; @Value("${services.provide.aai.oidc.domain}") private String domain; @PostConstruct private void init() { LOGGER.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); } @Bean public JedisConnectionFactory connectionFactory() { LOGGER.info(String.format("Redis : %s Port : %s Password : %s", host, port, password)); JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(); jedisConnectionFactory.setHostName(host); jedisConnectionFactory.setPort(Integer.parseInt(port)); jedisConnectionFactory.setUsePool(true); if (password != null) jedisConnectionFactory.setPassword(password); return jedisConnectionFactory; } @Bean public CookieSerializer cookieSerializer() { DefaultCookieSerializer serializer = new DefaultCookieSerializer(); serializer.setCookieName("openAIRESession"); serializer.setCookiePath("/"); serializer.setDomainName(domain); LOGGER.info("Serializer : " + serializer); return serializer; } @Bean public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.set("Content-Type", "application/json"); return restTemplate; } }