Я разрабатываю угловое приложение с аутентификацией jwt и бэкэндом с пружинной загрузкой.На данный момент я бы хотел, чтобы мое приложение было доступно только для всех ПК, подключенных к локальной сети.
Для angular я попробовал ng serve --host 0.0.0.0, и мое приложение было доступно для всех компьютеров в сети, на ip компьютера, обслуживающего приложение, было следующее: 4200.
Пружинная загрузка также работает на том же ПК.
Но, когда я пытаюсь войти в систему с другого ПК в локальной сети, мои учетные данные не работают, я получаю отказ в соединении в консоли Chrome.
В intellij я не получаю сообщения, признак того, что к весне не поступает ни одного запроса.
На компьютере с угловой и пружинной загрузкой я могу успешно пройти аутентификацию с теми же учетными данными, что и у меня.ошибок нет.
Это моя весенняя загрузка WebSecurity:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors()
.and()
.csrf()
.disable()
.authorizeRequests()
.antMatchers("/socket").permitAll()
.antMatchers("/api/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler)
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
}
Я оставил маршруты для аутентификации (моей аутентификации) и сокета, чтобы всем было разрешено.Когда я пытаюсь в браузере, ip компьютера, на котором запущено угловое приложение и сервер весенней загрузки, следует: 8080, моя обработка исключений заботится об этом и отображает в intellij «Несанкционированная ошибка. Сообщение - для доступа к этому требуется полная аутентификация»resource ".
Это означает, что запрос принимает сервер весенней загрузки, но, конечно, без учетных данных, запрос закрывается.
В отличие от этого при попытке pc_ip: 4200, мой уголприложение отображается, я пытаюсь выполнить аутентификацию, "отказано в соединении" в консоли Chrome, при попытке pc_ip: 8080 я получаю запрос весной, но мой обработчик исключений обрабатывает его.
Я думаю, мне нужнодополнительная конфигурация весной?Что мне не хватает?
С уважением,
РЕДАКТИРОВАТЬ 1: это ошибка, которая появляется в консоли Chrome при попытке войти в систему.
РЕДАКТИРОВАТЬ 2: похоже, мое угловое приложение пытаетсядля входа используйте http://localhost:8080/api/auth/login вместо pc_ip: 8080 / api / auth / login, потому что именно там находится сервер, а не localhost: 8080.Любые идеи, чтобы сказать клиенту, чтобы он отправлял запросы по правильному маршруту?
EDIT3: я отредактировал в весенней безопасности, чтобы разрешить доступ ко всем приложениям.На другом ПК теперь я могу просматривать свое приложение, набрав pc_ip: 8080 / и добавив любой из моих URL-адресов, определенных в контроллерах.Также на pc_ip: 4200 мое угловое приложение живет.Как я могу переделать мои настройки так, чтобы только один ip на другом ПК запускал мое приложение?
EDIT4: Благодаря georgeB мне удалось решить почти все мои проблемы, но веб-розетка все еще не работает на другом ПК в сети.Я прикрепил экран печати, чтобы показать ошибку.Я не понимаю, почему на ПК, который работает под углом и пружиной, нет проблемы с webbsocket, а на другом ПК все проверки подлинности, запросы в порядке, но websocket не в порядке.
EDIT5: Для stompреализация, которую я использую https://stomp -js.github.io / guide / ng2-stompjs / 2018/11/04 / ng2-stomp-with-angular7.html
Реализация проста:
export const myRxStompConfig: InjectableRxStompConfig = {
brokerURL: 'ws://localhost:8080/api/socket',
heartbeatIncoming: 0,
heartbeatOutgoing: 20000,
reconnectDelay: 200,
};
Затем в финале я добавляю
const config: InjectableRxStompConfig = { ...myRxStompConfig,
connectHeaders: headers};
this.rxStompService.configure(config);
this.rxStompService.activate();
this.rxStompService.watch('/topic/server-broadcaster')
.subscribe((message: Message) => {
});
![enter image description here](https://i.stack.imgur.com/9oLOf.jpg)
![this is the error i get in chrome console when i try to login.](https://i.stack.imgur.com/z4NGE.jpg)