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
  • 相关阅读:
    摊牌了……开始入坑硬件开发……Arduion点亮oled小屏
    最后的晚餐——dubbo其他剩余高级知识点分享
    dubbo的负载均衡以及配置方式补充
    dubbo知识点之管理工具dubbo-admin分享
    could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to 'AsEnumerable',
    netcore 后台任务 指定每天某一时间执行任务
    C# 线程Timer的Change
    EF 取值时出错: Specified cast is not valid
    C# 比较两个数据的不同
    c# json数据解析——将字符串json格式数据转换成对象或实体类
  • 原文地址:https://www.cnblogs.com/lshan/p/9817815.html
Copyright © 2011-2022 走看看