Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private final TokenProvider tokenProvider;
- protected UserDetailsService userDetailsService;//= (UserDetailsService) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
- private final CorsFilter corsFilter;
- private final SecurityProblemSupport problemSupport;
- public SecurityConfiguration(UserDetailsService userDetailsService,TokenProvider tokenProvider, CorsFilter corsFilter, SecurityProblemSupport problemSupport) {
- this.tokenProvider = tokenProvider;
- this.corsFilter = corsFilter;
- this.userDetailsService = userDetailsService;
- this.problemSupport = problemSupport;
- }
- @Bean
- public PasswordEncoder passwordEncoder() {
- return new BCryptPasswordEncoder();
- }
- @Override
- public void configure(WebSecurity web) throws Exception {
- web.ignoring()
- .antMatchers(HttpMethod.OPTIONS, "/**")
- .antMatchers("/swagger-ui/index.html")
- .antMatchers("/test/**");
- }
- @Override
- public void configure(HttpSecurity http) throws Exception {
- // @formatter:off
- http
- .csrf()
- .disable()
- .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
- .addFilterAfter(switchUserFilter(), FilterSecurityInterceptor.class)
- .exceptionHandling()
- .authenticationEntryPoint(problemSupport)
- .accessDeniedHandler(problemSupport)
- .and()
- .headers()
- .frameOptions()
- .disable()
- .and()
- .sessionManagement()
- .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
- .and()
- .authorizeRequests()
- .antMatchers("/api/authenticate").permitAll()
- .antMatchers("/api/register").permitAll()
- .antMatchers("/api/activate").permitAll()
- .antMatchers("/api/account/reset-password/init").permitAll()
- .antMatchers("/api/account/reset-password/finish").permitAll()
- .antMatchers("/api/**").authenticated()
- .antMatchers("/management/health").permitAll()
- .antMatchers("/management/info").permitAll()
- .antMatchers("/management/prometheus").permitAll()
- .antMatchers("/management/**").hasAuthority(AuthoritiesConstants.ADMIN)
- .antMatchers("/login/switchUser").permitAll()
- .antMatchers("/login/impersonate").permitAll()
- .and()
- .apply(securityConfigurerAdapter());
- // @formatter:on
- }
- @Bean
- public SwitchUserFilter switchUserFilter() {
- SwitchUserFilter filter = new SwitchUserFilter();
- filter.setUserDetailsService(userDetailsService);
- filter.setSwitchUserUrl("/login/impersonate");
- filter.setSwitchFailureUrl("/login/switchUser");
- filter.setTargetUrl("/#/home");
- return filter;
- }
- private JWTConfigurer securityConfigurerAdapter() {
- return new JWTConfigurer(tokenProvider);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement