Для быстрой разработки 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: <a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a>
Content-Length: 0
Date: Fri, 05 Oct 2018 17:26:41 GMT
ответ сервера о сбое wenn интерфейс на порту 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: <a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a>
Content-Length: 0
Date: Fri, 05 Oct 2018 17:30:53 GMT
ДОПОЛНИТЕЛЬНО:
Для быстрой разработки Frontend (React) работает на порте 3000. Запрос CORS работает хорошо.Я получаю проблему с аутентификацией из внешнего интерфейса:
- небольшая проблема 1 - перенаправление на порт 8080
- большая проблема 2: аутентификация прошла успешно, но на порту 8080
У меня просто не будет успешной аутентификации во время выполнения реакции. Frontend.localhost: 3000.не использовать Spring-MVC.
сервер успешно работает и на порту 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: <a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a>
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: <a href="http://localhost:8080/" rel="nofollow noreferrer">http://localhost:8080/</a>
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'})