• 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
  • 相关阅读:
    Android基础
    Android基础
    Java小项目——多线程弹球
    Java小项目——抽奖系统
    Java小项目——五子棋
    Java小项目——画板
    Java基础——swing登录界面
    Java基础——类的继承
    实验室资料说明
    20180919 百信、百度面试
  • 原文地址:https://www.cnblogs.com/lshan/p/9817815.html
Copyright © 2020-2023  润新知