All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.jhonsapp.bootstrap.util.RefreshTokenUtil Maven / Gradle / Ivy

package br.com.jhonsapp.bootstrap.util;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.stereotype.Component;

import br.com.jhonsapp.bootstrap.property.BootstrapUserProperty;

@Component
public class RefreshTokenUtil {

	@Autowired
	private BootstrapUserProperty systemProperty;
	
	private Cookie createCookie(String refreshToken) {
		return new Cookie("refreshToken", refreshToken);
	}
	
	private Cookie addRefreshTokenInCookie(String refreshToken, int maxAge, HttpServletRequest req) {
		
		Cookie cookie = createCookie(refreshToken);
		cookie.setHttpOnly(true);
		cookie.setSecure(systemProperty.getSecurity().isEnableHttps());
		cookie.setPath(req.getContextPath() + "/oauth/token");
		cookie.setMaxAge(maxAge);
		
		return cookie;
	}
	
	
	public void createRefreshTokenCookie(String refreshToken, HttpServletRequest req, HttpServletResponse resp) {
		
		Cookie cookie = addRefreshTokenInCookie(refreshToken, 2592000, req);
		resp.addCookie(cookie);
	}
	
	public void invalidateRefreshTokenCookie(HttpServletRequest req, HttpServletResponse resp) {
		
		Cookie cookie = addRefreshTokenInCookie(null, 0, req);
		resp.addCookie(cookie);
	}
	
	public void removeRefreshTokenBody(DefaultOAuth2AccessToken token) {
		token.setRefreshToken(null);
	}
	
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy