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
  • 相关阅读:
    C#计算一段程序运行时间的三种方法
    jquery easyui combobox设置默认选中第一项
    ASP.NET Web API教程 分页查询
    ASP.NET Web Api 实现数据的分页
    开源.net 混淆器ConfuserEx介绍
    C#软件license管理(简单软件注册机制)
    MyBatis入门实例-包括实体类与数据库字段对应&CLOB字段处理
    MyBatis在insert插入操作时返回主键ID的配置
    MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
    关于java中split的使用
  • 原文地址:https://www.cnblogs.com/lshan/p/9817815.html
Copyright © 2011-2022 走看看