zoukankan      html  css  js  c++  java
  • https Configure a Spring Boot app for HTTPS on Amazon AWS.

    参考: https://geocolumbus.github.io/HTTPS-ELB-AWS-Spring-Boot/

    1.  在服务器端配置  证书 域名 映射

    2. 导入依赖:

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    3.配置

    @Configuration
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Autowired
        private LdapConfig ldapConfig;
    
        @Autowired
        private CorsConfig corsConfig;
    
        @Bean
        @Override
        public AuthenticationManager authenticationManagerBean() throws Exception {
            return super.authenticationManagerBean();
        }
    
        @Value("${security.https.path}")
        private String httpsPath;   // 项目路径  ,正式环境  配置 "/" 即可
    
     
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                    .requiresChannel().antMatchers(httpsPath).requiresSecure()
                    .and()
                    .authorizeRequests()
                    //.antMatchers("/ui/**").fullyAuthenticated()
                    //.antMatchers("/file/**").fullyAuthenticated()
                    .antMatchers("/**").permitAll()
                    .and().cors()
                    .and().csrf().disable();
        }
    
        
    }

    (备份)

    @Configuration
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Autowired
        private LdapConfig ldapConfig;
    
        @Autowired
        private CorsConfig corsConfig;
    
        @Bean
        @Override
        public AuthenticationManager authenticationManagerBean() throws Exception {
            return super.authenticationManagerBean();
        }
    
        @Value("${security.https.path}")
        private String httpsPath;
    
        @Bean
        public UserDetailsContextMapper userDetailsContextMapper() {
            return new LdapUserDetailsMapper() {
                @Override
                public UserDetails mapUserFromContext(DirContextOperations ctx, String username,
                                                      Collection<? extends GrantedAuthority> authorities) {
                    UserDetails details = super.mapUserFromContext(ctx, username, authorities);
                    return new UserDetail((LdapUserDetails) details);
                }
            };
        }
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                    .requiresChannel().antMatchers(httpsPath).requiresSecure()
                    .and()
                    .authorizeRequests()
                    .antMatchers("/ui/**").fullyAuthenticated()
                    .antMatchers("/file/**").fullyAuthenticated()
                    .antMatchers("/**").permitAll()
                    .and().cors()
                    .and().csrf().disable();
        }
    
        @Override
        public void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth
                    .ldapAuthentication()
                    .userDetailsContextMapper(userDetailsContextMapper())
                    .userDnPatterns("uid={0},ou=people")
                    .groupSearchBase("ou=groups")
                    .contextSource()
                    .url(ldapConfig.getUrl()+ldapConfig.getBase_dc())
                    .managerDn(ldapConfig.getUsername())
                    .managerPassword(ldapConfig.getPassword());
        }
    
        @Bean
        CorsConfigurationSource corsConfigurationSource() {
            CorsConfiguration configuration = new CorsConfiguration();
            configuration.setAllowedOrigins(corsConfig.getAllowedOrigins());
            configuration.setAllowedMethods(corsConfig.getAllowedMethods());
            configuration.setAllowedHeaders(corsConfig.getAllowedHeaders());
            configuration.setAllowCredentials(corsConfig.getAllowedCredentials());
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            source.registerCorsConfiguration("/**", configuration);
            return source;
        }
    }
    View Code

    4.在application. yml 或者 application.properties 中配置:

    server:
      port: 7000
      servlet:
        session:
          timeout: 1800
      tomcat:
        max-threads: 10
        remote-ip-header: x-forwarded-for
        protocol-header: x-forwarded-proto
  • 相关阅读:
    进程和阻塞
    docker简介
    python===lambda匿名函数===day15
    python----生成器, 生成器函数, 推倒式---13
    python----函数参数---10天
    python---函数 第九天
    python===文件===第八天
    python===基本数据类型 基本增删改查 ===深浅拷贝==第七天
    20180802 (个别内置方法)
    20180730 (面向对象的反射,内置方法)
  • 原文地址:https://www.cnblogs.com/lshan/p/9817815.html
Copyright © 2011-2022 走看看