1
0

feat(all): 搭建基本框架和模块

This commit is contained in:
2024-11-15 15:35:08 +08:00
commit 1900265075
174 changed files with 87868 additions and 0 deletions

52
gringotts-gateway/pom.xml Normal file
View File

@@ -0,0 +1,52 @@
<?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>
<parent>
<groupId>com.eshore</groupId>
<artifactId>gringotts</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>gringotts-gateway</artifactId>
<dependencies>
<dependency>
<groupId>com.eshore</groupId>
<artifactId>gringotts-configuration</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
<exclusion>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,42 @@
package com.eshore.gringotts.gateway;
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import java.util.function.Function;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.gateway.route.Route;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.Buildable;
import org.springframework.cloud.gateway.route.builder.PredicateSpec;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
/**
* 启动类
*
* @author lanyuanxiaoyao
* @date 2024-01-15
*/
@SpringBootApplication(scanBasePackages = "com.eshore.gringotts")
@EnableConfigurationProperties
@EnableEncryptableProperties
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
private Function<PredicateSpec, Buildable<Route>> createRoute(String prefix, String target) {
return p -> p
.path(prefix + "/**")
.filters(filter -> filter.rewritePath("^" + prefix, ""))
.uri(target);
}
@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route("web", createRoute("/gringotts/web", "lb://gringotts-web"))
.build();
}
}

View File

@@ -0,0 +1,25 @@
package com.eshore.gringotts.gateway.configuration;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.web.reactive.config.CorsRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurer;
/**
* web
*
* @author lanyuanxiaoyao
* @date 2024-01-15
*/
@Configuration
public class WebConfiguration implements WebFluxConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedOriginPatterns("*")
.allowedHeaders("*")
.allowedMethods("*")
.exposedHeaders(HttpHeaders.SET_COOKIE);
}
}