Spring CORS

0

Dodałem do aplikacji

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*");
    }
}

Wysyłam dane ajaxem

$('body').on('submit', 'form[name="action-login"]', function () {
	var login = '[email protected]';
	var password = 'test';
	var headers = {
		"Authorization": USERNAME + ":" + PASSWORD,
		"Accept": "application/json",
	};
	var data = {
		'username': login,
		'password': password,
		'grant_type': 'password',
		'client_secret': '123456',
		'client_id': 'clientapp',
		'scope': 'read%20write'
	};
	console.log(headers);
	console.log(data);
	$.ajax
			({
				type: "POST",
				url: SITE_URL + "oauth/token",
				dataType: 'json',
				async: false,
				headers: headers,
				data: data,
				success: function () {
					alert('Ok!');
				},
				error: function (e) {

				}
			});
	return false;
});

Cały czas mi leci

jquery-3.0.0.min.js:4 XMLHttpRequest cannot load http://localhost:8080/oauth/token. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1' is therefore not allowed access. The response had HTTP status code 401.

Przed dodaniem mapowania CORS było to samo
Spring Boot 1.3.3

0

A jak dodasz do kontrolera po prostu @CrossOrigin ?

0

Nie mam kontrolera do /oauth/token, bo korzystam ze Springowego OAuth'a. Póki co tylko chcę token, więc żadnego mojego kontrolera nie wywołuję

0
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class SimpleCORSFilter implements Filter {

private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);

public SimpleCORSFilter() {
    log.info("SimpleCORSFilter init");
}

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;

    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");

    chain.doFilter(req, res);
}

@Override
public void init(FilterConfig filterConfig) {
}

@Override
public void destroy() {
}

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1