Заголовок в ответе не должен содержать подстановочный знак «*», если режим учетных данных запроса — «включить».JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Заголовок в ответе не должен содержать подстановочный знак «*», если режим учетных данных запроса — «включить».

Сообщение Гость »

Я использую Auth0 для аутентификации пользователя, чтобы разрешить доступ к Spring (Boot) RestController только вошедшим в систему пользователям. На этом этапе я создаю функцию обмена сообщениями в реальном времени, с помощью которой пользователи могут отправлять сообщения из клиента Angular 2 (

Код: Выделить всё

localhost:4200
) на сервер Spring (localhost:8081) с помощью stompjs и sockjs.

При попытке создать Stomp-клиент и запуская соединение, я получаю следующую консольную ошибку:

Код: Выделить всё

 The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://localhost:4200' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
После исследования этой проблемы выяснилось, что невозможно одновременно установить параметры origins = * и Credentials = true. Как я могу решить эту проблему, если я уже установил разрешенное происхождение в WebSocketConfig для клиентского домена?

Компонент Angular 2

Код: Выделить всё

connect() {
var socket = new SockJS('http://localhost:8081/chat');
this.stompClient = Stomp.over(socket);
this.stompClient.connect({}, function(result) {
console.log('Connected: ' + result);
this.stompClient.subscribe('/topic/messages', function(message) {
console.log(message);
});
});
}
WebSocketConfig

Код: Выделить всё

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat").setAllowedOrigins("http://localhost:4200").withSockJS();
}
}
localhost:8081/chat/info?t=1490866768565

Код: Выделить всё

{"entropy":-1720701276,"origins":["*:*"],"cookie_needed":true,"websocket":true}
Контроллер сообщений

Код: Выделить всё

public class MessageController {
@MessageMapping("/chat")
@SendTo("/topic/messages")
public Message send(Message message) throws Exception {
return new Message(message.getFrom(), message.getText());
}
}
SecurityConfig (временно разрешает все)

Код: Выделить всё

public class SecurityConfig extends Auth0SecurityConfig {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll();
}
}
ОБНОВЛЕНИЕ

После дополнительного тестирования и исследования выяснилось, что проблема только в происходит с использованием Chrome. Проблема может быть связана с: https://github.com/sockjs/sockjs-node/issues/177

ОБНОВЛЕНИЕ
Я создал CORSFilter, как упоминалось в chsdk, и использовал метод addFilterBefore(): https://stackoverflow.com/a/40300363/4836952.

Код: Выделить всё

@Bean
CORSFilter corsFilter() {
CORSFilter filter = new CORSFilter();
return filter;
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterBefore(corsFilter(), SessionManagementFilter.class).authorizeRequests().anyRequest().permitAll();
http.csrf().disable();
}
Я вижу, что фильтр вызывается при его отладке, но сообщение об ошибке продолжает появляться на стороне клиента, даже если установлен правильный Access-Control-Allow-Origin:< /p>

Изображение


Подробнее здесь: https://stackoverflow.com/questions/431 ... -credentia
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»