Projekt

Obecné

Profil

« Předchozí | Další » 

Revize f53de6a5

Přidáno uživatelem Petr Urban před asi 2 roky(ů)

#10426 - refactor, párování na reactjs, povolení cors

Zobrazit rozdíly:

src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/WebConfig.java
1
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config;
2

  
3
import org.springframework.context.annotation.Bean;
4
import org.springframework.stereotype.Component;
5
import org.springframework.web.servlet.config.annotation.CorsRegistry;
6
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
7

  
8
@Component
9
public class WebConfig {
10

  
11
    @Bean
12
    public WebMvcConfigurer corsConfigurer() {
13
        return new WebMvcConfigurer() {
14
            @Override
15
            public void addCorsMappings(CorsRegistry registry) {
16
                registry.addMapping("/**")
17
                        .allowedOrigins("http://localhost:3000")
18
                        .allowCredentials(true);
19
            }
20
        };
21
    }
22

  
23
}
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/JwtAuthenticationFilter.java
75 75
            String path = request.getRequestURI().substring(request.getContextPath().length());
76 76
        return path.startsWith("/v2/user/login") || path.startsWith("/v2/user/register");
77 77
    }
78

  
79

  
78 80
}
79 81

  
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/WebSecurityConfig.java
14 14
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
15 15
import org.springframework.security.config.http.SessionCreationPolicy;
16 16
import org.springframework.security.core.userdetails.UserDetailsService;
17
import org.springframework.security.web.SecurityFilterChain;
18
import org.springframework.security.web.access.channel.ChannelProcessingFilter;
17 19
import org.springframework.web.client.RestTemplate;
20
import org.springframework.web.cors.CorsConfiguration;
21
import org.springframework.web.cors.CorsConfigurationSource;
22
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
23

  
24
import java.util.Arrays;
18 25

  
19 26
@Configuration
20 27
@EnableWebSecurity(debug = true)
......
63 70
    @Override
64 71
    protected void configure(HttpSecurity httpSecurity) throws Exception {
65 72
        httpSecurity
73
                .cors().configurationSource(corsConfigurationSource())
74
                .and()
66 75
                .csrf().disable()
67 76
                .authorizeRequests()
68 77
                .mvcMatchers("/v2/user/register", "/v2/user/login", "/v2/user/refresh", "/v2/user/logout").permitAll()
69 78
                .anyRequest().authenticated()
70 79
                .and()
71 80
                .sessionManagement()
72
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
73
                .and();
81
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
82
    }
83

  
84
    @Bean
85
    public CorsConfigurationSource corsConfigurationSource() {
86
        CorsConfiguration configuration = new CorsConfiguration();
87
        configuration.setAllowedOrigins(Arrays.asList("http://localhost:3000"));
88
        configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
89
        configuration.setAllowedHeaders(Arrays.asList("authorization", "content-type", "x-auth-token"));
90
        configuration.setExposedHeaders(Arrays.asList("x-auth-token"));
91
        configuration.setAllowCredentials(true);
92
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
93
        source.registerCorsConfiguration("/**", configuration);
94
        return source;
74 95
    }
75 96

  
76 97
}

Také k dispozici: Unified diff