Ola a todos estou com seguinte erro em um projeto que estou fazendo curso.
Access to XMLHttpRequest at ‘http://localhost:8080/cursospringrestapi/usuario/’ from origin ‘http://localhost:4200’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
no endpoint ja fiz a liberação mais mesmo assim continua o erro alguém poderia me ajudar ou orientar o que posso estar fazendo de errado, desde ja agradeço.
package curso.api.rest.security;
import java.io.IOException;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import curso.api.rest.ApplicationContexLoad;
import curso.api.rest.model.Usuario;
import curso.api.rest.repository.UsuarioRepository;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
@Service
@Component
public class JWTTokenAutenticacaoService {
// TEMPO DE VALIDADE DO TOKES NESE CASO ABAIXO 2 DIAS
private static final long EXPIRATION_TIME = 172800000;
// uma senha unica para compor a autenticação
private static final String SECRET = "senha123";
// Prefixo padrao de token
private static final String TOKEN_PREFIX = "Bearer";
private static final String HEADER_STRING = "Authorization";
// Gerando token de autenticação e adicionado ao cabeçalho e resposta Http
public void addAuthetication(HttpServletResponse response, String username) throws IOException {
// montagem do token
String JWT = Jwts.builder() // chama o gerador de Token
.setSubject(username) // Adiciona o usuario
.setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)) // tempo de expiração
.signWith(SignatureAlgorithm.HS512, SECRET).compact(); // compactação e algoritimo de geração de senha
// Junta o token com o prefixo
String token = TOKEN_PREFIX + " " + JWT; // Exemplo beare 54654-*-447+-*//-77--
// adiciona no cabeçalho http
response.addHeader(HEADER_STRING, token); // exemplo retorno Authotization: Bearer kldsjf439052-rjf9-u032=(
liberacaoCors(response);
response.getWriter().write("{"Authorization":"" + token + ""}");
}
public Authentication getAuthentication(HttpServletRequest request, HttpServletResponse response) {
String token = request.getHeader(HEADER_STRING);
if (token != null) {
String user = Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token.replace(TOKEN_PREFIX, "")).getBody()
.getSubject();
if (user != null) {
Usuario usuario = ApplicationContexLoad.getApplicationContext().getBean(UsuarioRepository.class)
.findUserByLogin(user);
if (usuario != null) {
return new UsernamePasswordAuthenticationToken(usuario.getLogin(), usuario.getSenha(),
usuario.getAuthorities());
}
}
}
liberacaoCors(response);
return null;
}
private void liberacaoCors(HttpServletResponse response) {
if (response.getHeader("Access-Control-Allow-Origin") == null) {
response.addHeader("Access-Control-Allow-Origin", "*");
}
if (response.getHeader("Access-Control-Allow-Headers") == null) {
response.addHeader("Access-Control-Allow-Headers", "*");
}
if (response.getHeader("Access-Control-Request-Headers") == null) {
response.addHeader("Access-Control-Request-Headers", "*");
}
if (response.getHeader("Access-Control-Allow-Methods") == null) {
response.addHeader("Access-Control-Allow-Methods", "*");
}
}
}