springboot实现将项目http访问转换为https访问

首先 下载ssl证书  可以在支付宝等大平台申请  因为本地jdk获取的证书在网页连接中会提示不安全,是不被浏览器认可的。

在Windows下的命令 (在系统jdk的bin目录下执行)

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

在linux命令下获取(在系统jdk的bin目录下执行)

keytool -genkey -alias tomcat -keyalg RSA -validity 20000 -keystore keystore.p12 

 

会生成一个keystore.p12的文件

关于keytool的说明:
keytool -genkey -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数

配置application.yml

server:
  port: 8081
  ssl:
    key-store: keystore.p12
    key-store-password: test08
    key-store-type: PKCS12
    key-alias: tomcat

将上面生成的keystore.p12文件移动到classpath下。

这时候https就可以访问了  但是和http是不兼容的  还要在启动类里面配置

import com.InitConfiguration;
import com.InitServiceConfiguration;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.EnableTransactionManagement;

//import javax.servlet.MultipartConfigElement;

@Configuration
@EnableTransactionManagement
@SpringBootApplication
@Import({InitServiceConfiguration.class, InitConfiguration.class})
@ComponentScan("com.********")
public class AppApiApplication implements CommandLineRunner{

    public static void main(String[] args) {
        SpringApplication.run(AppApiApplication.class, args);
    }

  

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
               //将http访问重定向到https访问

                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;

    }
    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        //将http的访问端口重定向到https的访问端口
        
        connector.setScheme("http");
        //http的访问端口
        connector.setPort(80);
        connector.setSecure(false);
        //https的访问端口 就是ssl证书的端口  默认是443
        connector.setRedirectPort(443);
        return connector;
    }

    @Override
    public void run(String... arg0) throws Exception {
        // TODO Auto-generated method stub
    }
}

这样  当http 访问的时候会自动跳转为https访问 

遇到的问题:

1.首先  在做接口测试的时候不能用网页链接拼接参数去访问  因为链接访问都是get请求  接口中有一些只允许post请求的

2.再用api测试的时候http访问需要加上query参数 https访问可以直接使用body参数

3.本地证书犹豫不被浏览器认可所以会显示为不安全  需要下载大平台证书  阿里云就有 可以免费一年

4.网上申请的ssl证书是需要绑定域名的  一个域名只允许安装一个ssl证书

5.当进入程序发送到测试环境时,api和网页链接访问是访问不了的  会提示不允许get请求  需要进入项目中按照前端页面的按钮测

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SpringBoot项目基于MySQL的商业辅助决策系统是一个为企业管理层和商业分析师设计的数据分析与报告工具。它利用Spring Boot的快速开发特性,结合了数据仓库技术、在线分析处理(OLAP)、数据可视化、预测建模以及实时报告等功能,旨在提供深入的业务洞察和辅助决策支持,帮助企业在复杂的市场环境中做出更加明智的商业选择。 以下是该商业辅助决策系统的主要功能: 1. **数据集成与管理**:从多个数据源抽取数据,并将其整合至MySQL数据库中,保持数据的一致性和准确性。 2. **交互式数据分析**:通过OLAP工具让用户能够进行多维数据分析,快速获得关键业务指标。 3. **数据可视化**:将复杂数据转换为直观图表和仪表板,帮助用户更容易理解数据趋势和模式。 4. **预测模型构建**:利用历史数据构建预测模型,为销售、库存等提供前瞻性分析。 5. **实时报告生成**:根据用户需求生成定制化的报告,支持即时查询和定时发送。 6. **移动设备优先设计**:采用响应式布局,使平台在不同大小的屏幕上均有良好展现,尤其适应移动设备。 7. **数据安全与权限管理**:采取加密技术和细粒度的访问控制策略,确保敏感商业数据的安全性。 8. **友好的用户操作界面**:界面直观易用,降低用户学习成本,并提供多语言支持。 9. **易于维护和扩展**:前后端分离架构和模块化设计,方便未来根据商业需求的变化进行系统升级或功能拓展。 10. **智能推荐引擎**:基于用户行为和偏好分析,提供个性化的业务见解和建议。 通过这些功能,基于Spring Boot的商业辅助决策系统不仅提高了企业对数据的掌控能力,还加强了战略决策的数据支撑。系统的架构设计注重性能、可用性和可维护性,以支持高并发的用户访问和动态的数据更新。其模块化的设计也便于未来根据商业智能领域的发展增加新功能或升级现有功能,确保软件的长期适用性和技术前瞻性。
将一个druid-springboot-starter的springboot项目转换成使用shardingjdbc的springboot项目的步骤如下: 1. 在pom.xml文件中增加sharding-jdbc-spring-boot-starter和mysql-connector-java的依赖。 ```xml <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>${shardingjdbc.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> ``` 2. 在application.yml或application.properties中配置sharding-jdbc的数据源和分库分表规则。 ```yaml spring: shardingsphere: datasource: names: ds0, ds1 # 数据源名称 ds0: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db0?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root ds1: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root sharding: tables: t_order: actual-data-nodes: ds$->{0..1}.t_order_$->{0..1} table-strategy: inline: sharding-column: order_id algorithm-expression: t_order_$->{order_id % 2} key-generator: type: SNOWFLAKE column: order_id binding-tables: t_order default-database-strategy: inline: sharding-column: user_id algorithm-expression: ds$->{user_id % 2} default-table-strategy: none: ``` 3. 在代码中使用sharding-jdbc的数据源访问数据库。 ```java @Autowired private JdbcTemplate jdbcTemplate; public void query() { String sql = "select * from t_order where user_id = ?"; List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, 10); System.out.println(resultList); } ``` 通过以上步骤,就可以将一个druid-springboot-starter的springboot项目转换成使用shardingjdbc的springboot项目了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值