From d54d3590cfa2f02afdc1d16749a7b12532b0e5ef Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 02 六月 2023 18:47:49 +0800 Subject: [PATCH] 提交代码 --- eureka/src/main/java/com/sinata/eureka/EurekaApplication.java | 22 +++++++ eureka/src/main/java/com/sinata/eureka/config/WebSecurityConfig.java | 24 ++++++++ eureka/pom.xml | 82 +++++++++++++++++++++++++++ eureka/src/main/resources/application.yml | 24 ++++++++ 4 files changed, 152 insertions(+), 0 deletions(-) diff --git a/eureka/pom.xml b/eureka/pom.xml new file mode 100644 index 0000000..6e58611 --- /dev/null +++ b/eureka/pom.xml @@ -0,0 +1,82 @@ +<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>2.0.4.RELEASE</version> + <relativePath/> <!-- lookup parent from repository --> + </parent> + <groupId>com.sinata</groupId> + <artifactId>demo</artifactId> + <version>0.0.1-SNAPSHOT</version> + <name>eureka</name> + <description>Eureka project for Spring Boot</description> + + <packaging>jar</packaging> + + <properties> + <java.version>1.8</java.version> + <spring-cloud.version>Finchley.SR1</spring-cloud.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> + </dependency> + <!-- 添加安全认证依赖 --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </dependency> + + + <!--<dependency>--> + <!--<groupId>org.springframework.boot</groupId>--> + <!--<artifactId>spring-boot-starter-tomcat</artifactId>--> + <!--<scope>provided</scope>--> + <!--</dependency>--> + <!--<dependency>--> + <!--<groupId>javax.servlet</groupId>--> + <!--<artifactId>javax.servlet-api</artifactId>--> + <!--<version>3.1.0</version>--> + <!--<scope>provided</scope>--> + <!--</dependency>--> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${spring-cloud.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + +</project> diff --git a/eureka/src/main/java/com/sinata/eureka/EurekaApplication.java b/eureka/src/main/java/com/sinata/eureka/EurekaApplication.java new file mode 100644 index 0000000..82ff9a0 --- /dev/null +++ b/eureka/src/main/java/com/sinata/eureka/EurekaApplication.java @@ -0,0 +1,22 @@ +package com.sinata.eureka; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +@EnableEurekaServer//开启服务治理 +@SpringBootApplication +public class EurekaApplication /*extends SpringBootServletInitializer*/ { + + public static void main(String[] args) { + SpringApplication.run(EurekaApplication.class, args); + } + + +// @Override +// protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { +// return builder.sources(EurekaApplication.class); +// } +} diff --git a/eureka/src/main/java/com/sinata/eureka/config/WebSecurityConfig.java b/eureka/src/main/java/com/sinata/eureka/config/WebSecurityConfig.java new file mode 100644 index 0000000..66bdadc --- /dev/null +++ b/eureka/src/main/java/com/sinata/eureka/config/WebSecurityConfig.java @@ -0,0 +1,24 @@ +package com.sinata.eureka.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; + +/** + * 基于web安全认证 + */ +@Configuration +@EnableWebSecurity +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + @Override + public void configure(HttpSecurity http) throws Exception { + // Configure HttpSecurity as needed (e.g. enable http basic). + http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER); + http.csrf().disable(); + //注意:为了可以使用 http://${user}:${password}@${host}:${port}/eureka/ 这种方式登录,所以必须是httpBasic, + // 如果是form方式,不能使用url格式登录 + http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); + } +} diff --git a/eureka/src/main/resources/application.yml b/eureka/src/main/resources/application.yml new file mode 100644 index 0000000..0241f86 --- /dev/null +++ b/eureka/src/main/resources/application.yml @@ -0,0 +1,24 @@ +server: + port: 8000 #服务端口号 + +spring: + application: + name: eureka-center #服务名称 + security: + basic: + enable: true #开启基于HTTP basic的认证 + user: #配置用户的账号信息 + name: sinata + password: sinata + +eureka: + instance: + hostname: 127.0.0.1 #注册中心地址 + client: + service-url: #客户端调用地址 + defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ + register-with-eureka: false #是否将自己注册到Eureka服务中,因为该应用本身就是注册中心,不需要再注册自己(集群的时候为true) + fetch-registry: false #是否从Eureka中获取注册信息,因为自己为注册中心,不会在该应用中的检索服务信息 + server: + enable-self-preservation: false #禁用自我保护模式,服务不可用时及时从注册中心剔除 + eviction-interval-timer-in-ms: 4000 -- Gitblit v1.7.1