小编Arp*_*Das的帖子

如何在 Spring Cloud Gateway 中将 HTTP 重定向到 HTTPS

如何将http呼叫重定向到httpsin spring-cloud-gateway. 我已按照此链接中的说明在我的网关项目中配置了 https 。

现在 HTTPS 网址工作正常,但此外我需要将所有http调用重定向到https. 我试过这个

但这对我不起作用,因为我没有使用默认http端口 8080,而且我的应用程序正在 Spring Security 上运行。

以下代码显示了如何重定向httphttps,但我需要相同的Netty服务器配置,因为spring-cloud-gateway仅支持 netty ..

@Configuration
public class RedirectToHttpsConfig {

    @Value("${server.port}")
    private Integer httpsPort;

    @Value("${server.http.port}")
    private Integer httpPort;

    /* ################ THIS WILL WORK FINE ################ 
       ################ IF YOU HAVE TOMCAT  ################ 
       ################ AS EMBEDDED SERVER  ################ 
   */
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new …
Run Code Online (Sandbox Code Playgroud)

spring-cloud-gateway

5
推荐指数
1
解决办法
1540
查看次数

无法在spring-boot应用程序中从Consul读取配置

我正在创建一个Spring Boot应用程序,它将读取类似DB属性的配置Consul.但是我无法使用我的应用程序从Consul读取键值.以下是我要做的事情.

**pom.xml**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.tuturself</groupId>
    <artifactId>spring-boot-consul</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.retry.version>1.2.1.RELEASE</spring.retry.version>
        <consul.version>1.1.2.RELEASE</consul.version>
        <consul.discovery.version>1.1.2.RELEASE</consul.discovery.version>
        <jackson.version>2.8.1</jackson.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-all</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-consul-discovery</artifactId>
            <version>${consul.discovery.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
            <version>${spring.retry.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
    </dependencies>

    <build> …
Run Code Online (Sandbox Code Playgroud)

spring-boot consul microservices spring-cloud spring-cloud-consul

4
推荐指数
1
解决办法
3189
查看次数

我可以从 Spring Boot 2 执行器集成中删除执行器字以进行健康检查吗

我在我的微服务中使用了 spring-boot-acturator 进行健康检查。早些时候我的健康 API 是:

mydomain:healthPort/health
Run Code Online (Sandbox Code Playgroud)

其中已经与第三方健康检查客户端集成。现在将 spring-boot 版本升级到 spring-boot 2 后,我的健康 api 变为:

mydomain:healthPort/actuator/health
Run Code Online (Sandbox Code Playgroud)

有什么办法,因此我可以从健康检查api中删除执行器词。以下是我的健康检查配置:

management:
  server:
    context-path: /
    port: 50186
  health.diskspace.enabled: false
  security:
    enabled: false
  endpoints:
    enabled-by-default: false
  endpoint:
    health:
      enabled: true
      show-details: always
Run Code Online (Sandbox Code Playgroud)

yaml health-monitoring spring-boot spring-boot-actuator

3
推荐指数
2
解决办法
2363
查看次数

在Java中用逗号分隔的String创建枚举列表

我需要从逗号分隔的String创建枚举列表.我在属性文件中有一些配置,主要是列表HttpStatus

喜欢:

some.config=TOO_MANY_REQUESTS,GATEWAY_TIMEOUT,BAD_GATEWAY 
Run Code Online (Sandbox Code Playgroud)

此配置可以绑定到LIST,如下所示:

@Value("#{'${some.config}'.split(',')}")
private List<HttpStatus> statuses;
Run Code Online (Sandbox Code Playgroud)

现在可以用我的一行代码完成.我收到的字符串如下:

 @Bean(name = "somebean")
 public void do(@Value("${some.config:}") String statuses) throws IOException {

        private List<HttpStatus>  sList = StringUtils.isEmpty(statuses) ? 
        globalSeries : **Arrays.asList(statuses.split("\\s*,\\s*"));**

 }
Run Code Online (Sandbox Code Playgroud)

Arrays.asList(series.split( "\ S*,\ S*")); 将创建一个字符串列表,现在我可以创建一个枚举列表,否则我需要迭代临时列表然后创建一个枚举列表.

java spring-el java-8 spring-config

2
推荐指数
2
解决办法
1245
查看次数

如何在xml配置中将消息转换器添加到restTemplate

我正在使用 restTemplate 从远程服务器使用 json 数据,然后使用 jackson 解析我的 java 对象中的 json。我已通过 java 代码将所需的消息转换器添加到我的 restTemplate 中:

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
restTemplate.setMessageConverters(messageConverters);
restTemplate.setRequestFactory(new CommonsClientHttpRequestFactory());

MyResponse myResponse = restTemplate.getForObject(caasUrl, MyResponse.class);
Run Code Online (Sandbox Code Playgroud)

我的 restTemplate 在我的 spring-config 文件中定义为:

<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
        <constructor-arg>
            <bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
                <property name="readTimeout" value="630000" />
                <property name="connectTimeout" value="30000" />
            </bean>
        </constructor-arg>
    </bean>
Run Code Online (Sandbox Code Playgroud)

它工作正常,现在我的问题是我们如何将消息转换器列表传递给 xml 配置中的 restTemplate,因为我不想通过 java 代码做同样的事情。任何帮助请

rest jackson resttemplate spring-json

1
推荐指数
1
解决办法
1万
查看次数