Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. private final TokenProvider tokenProvider;
  2. protected UserDetailsService userDetailsService;//= (UserDetailsService) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
  3. private final CorsFilter corsFilter;
  4. private final SecurityProblemSupport problemSupport;
  5.  
  6.  
  7.  
  8. public SecurityConfiguration(UserDetailsService userDetailsService,TokenProvider tokenProvider, CorsFilter corsFilter, SecurityProblemSupport problemSupport) {
  9. this.tokenProvider = tokenProvider;
  10. this.corsFilter = corsFilter;
  11. this.userDetailsService = userDetailsService;
  12. this.problemSupport = problemSupport;
  13. }
  14.  
  15. @Bean
  16. public PasswordEncoder passwordEncoder() {
  17. return new BCryptPasswordEncoder();
  18. }
  19.  
  20. @Override
  21. public void configure(WebSecurity web) throws Exception {
  22. web.ignoring()
  23. .antMatchers(HttpMethod.OPTIONS, "/**")
  24. .antMatchers("/swagger-ui/index.html")
  25. .antMatchers("/test/**");
  26. }
  27.  
  28. @Override
  29. public void configure(HttpSecurity http) throws Exception {
  30. // @formatter:off
  31. http
  32. .csrf()
  33. .disable()
  34. .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
  35. .addFilterAfter(switchUserFilter(), FilterSecurityInterceptor.class)
  36. .exceptionHandling()
  37. .authenticationEntryPoint(problemSupport)
  38. .accessDeniedHandler(problemSupport)
  39. .and()
  40. .headers()
  41. .frameOptions()
  42. .disable()
  43. .and()
  44. .sessionManagement()
  45. .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
  46. .and()
  47. .authorizeRequests()
  48. .antMatchers("/api/authenticate").permitAll()
  49. .antMatchers("/api/register").permitAll()
  50. .antMatchers("/api/activate").permitAll()
  51. .antMatchers("/api/account/reset-password/init").permitAll()
  52. .antMatchers("/api/account/reset-password/finish").permitAll()
  53. .antMatchers("/api/**").authenticated()
  54. .antMatchers("/management/health").permitAll()
  55. .antMatchers("/management/info").permitAll()
  56. .antMatchers("/management/prometheus").permitAll()
  57. .antMatchers("/management/**").hasAuthority(AuthoritiesConstants.ADMIN)
  58. .antMatchers("/login/switchUser").permitAll()
  59. .antMatchers("/login/impersonate").permitAll()
  60. .and()
  61. .apply(securityConfigurerAdapter());
  62. // @formatter:on
  63. }
  64.  
  65.  
  66. @Bean
  67. public SwitchUserFilter switchUserFilter() {
  68.  
  69. SwitchUserFilter filter = new SwitchUserFilter();
  70. filter.setUserDetailsService(userDetailsService);
  71. filter.setSwitchUserUrl("/login/impersonate");
  72. filter.setSwitchFailureUrl("/login/switchUser");
  73. filter.setTargetUrl("/#/home");
  74.  
  75. return filter;
  76. }
  77.  
  78.  
  79. private JWTConfigurer securityConfigurerAdapter() {
  80. return new JWTConfigurer(tokenProvider);
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement