Аутентификация безопасности по умолчанию при загрузке Spring с другого порта

Для быстрой разработки Frontend (React) работает на порту 3000. Запрос CORS работает хорошо. У меня проблема с аутентификацией из внешнего интерфейса:

  • небольшая проблема 1 - перенаправление на порт 8080
  • большая проблема 2, что аутентификация прошла успешно, но на порту 8080

У меня просто не будет успешной аутентификации при запуске реакции frontend.localhost: 3000 .
не используйте Spring-mvc.

сервер успешный интерфейс wenn также на 8080 порте.
HTTP/1.1 302 Set-Cookie: JSESSIONID=8AA9C90B5599372059183C6D94798609; Path=/; HttpOnly X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 X-Frame-Options: DENY Location: http://localhost:8080/ Content-Length: 0 Date: Fri, 05 Oct 2018 17:26:41 GMT

серверный ответ сбой wenn frontend на порт 3000. HTTP/1.1 302 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 X-Frame-Options: DENY Set-Cookie: JSESSIONID=6AE3EA77D7786281DE5F2E9FE2EC2A31; Path=/; HttpOnly Location: http://localhost:8080/ Content-Length: 0 Date: Fri, 05 Oct 2018 17:30:53 GMT

###ДОПОЛНИТЕЛЬНЫЙ: Так что найду решение самостоятельно. 3 дня и 5 строк кода * ( исправление проблемы перенаправления:

<code>
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                //allow not authenticated user access to login page
                .antMatchers("/login").permitAll()
                //give access all users to React resources
                .antMatchers("/static/**").permitAll()
                .anyRequest().authenticated()
                //enable redirect to login if user not authenticated
.and().formLogin().successHandler(corsAuthSuccessHandler()).loginPage("/login")
              .and().csrf().disable();
    }

@Bean
    public AuthenticationSuccessHandler corsAuthSuccessHandler() {
        return new SimpleUrlAuthenticationSuccessHandler() {
            @Override
            protected String determineTargetUrl(HttpServletRequest request,HttpServletResponse response) {
                if (request.getHeader("Origin").equals(frontEndDevDomain))
                    return request.getHeader("Origin");
                return super.determineTargetUrl(request, response);
            }
        };
//Cors header allover:  
@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
       registry.addMapping("/**")
                    .allowedOrigins(frontEndDevDomain)
                    .allowCredentials(true);
            }
        };
    }
</code>

Из внешнего интерфейса после входа в систему каждый запрос будет CORS, если вы используете fetch, просто добавьте учетные данные строки: 'include' Например: fetch(URL + '/api/company/add/?name=' + name, {method: 'POST', credentials: 'include'})

Можете ли вы более конкретно рассказать о проблемах, с которыми вы сталкиваетесь? Вы используете Spring MVC с Spring Boot? Как вы проходите аутентификацию и как реагирует ваш бэкэнд?

Sebastiandg7 05.10.2018 02:07

Конечно. Я только что добавил спецификацию.

Baidiuk Yevhen 05.10.2018 19:39

В чем тут вопрос?

Hasan Can Saral 05.10.2018 22:17

@HasanCanSaral, как настроить разработку проекта, если бэкэнд не работает с внешним интерфейсом на другом порту (а именно аутентификация)? это занимает слишком много времени, чтобы собрать внешний интерфейс и перезапустить очень много времени.

Baidiuk Yevhen 06.10.2018 01:42

@HasanCanSaral работает хорошо, кроме аутентификации.

Baidiuk Yevhen 06.10.2018 01:57
1
5
656
1

Ответы 1

Я предполагаю, что проблема вызвана политикой cors на стороне клиента. Может помочь добавление некоторых параметров в ваш вызов ajax. Если вы используете пример apifor выборки, попробуйте включить учетные данные: «включить» в параметры запроса.

надеюсь это поможет.

Спасибо . ты прав . перенаправление после входа на исходный сервер и запрос внешнего интерфейса с учетными данными.

Baidiuk Yevhen 07.10.2018 13:29

Другие вопросы по теме