Blame view

zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java 1.91 KB
6f1aafa2   zhaowg   spring boot admin...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  package com.zteits.admin.config;
  
  import de.codecentric.boot.admin.server.config.AdminServerProperties;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
  import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
  
  @Configuration
  @EnableWebSecurity
  public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
      private final String adminContextPath;
  
      public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
          this.adminContextPath = adminServerProperties.getContextPath();
      }
  
      @Override
      protected void configure(HttpSecurity http) throws Exception {
          SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
          successHandler.setTargetUrlParameter("redirectTo");
          successHandler.setDefaultTargetUrl(adminContextPath + "/");
  
          http.authorizeRequests()
              .antMatchers(adminContextPath + "/assets/**").permitAll()
              .antMatchers(adminContextPath + "/login").permitAll()
              .anyRequest().authenticated()
              .and()
          .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
          .logout().logoutUrl(adminContextPath + "/logout").and()
          .httpBasic().and()
          .csrf()
              .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
              .ignoringAntMatchers(
                  adminContextPath + "/instances",
                  adminContextPath + "/actuator/**"
              );
          // @formatter:on
      }
  }