seguridad de autenticación springcloud
Artículo anterior: clúster de servidores eureka
Artículo siguiente: Use Feign para implementar llamadas REST declarativas
para agregar autenticación de usuario a Eureka Server En el ejemplo anterior, Eureka Server permite el acceso anónimo Puede acceder al componente de descubrimiento de servicios sin una contraseña. Inicie sesión, dubbo todavía necesita una contraseña, esta no es necesaria, ¿se siente inseguro? Aprenda hoy a agregar seguridad de autenticación a los componentes del servicio
autenticación del servidor eureka
1 pom.xml
Agregue la dependencia de spring-boot-starter-security al pom.xml en el proyecto del componente de servicio, lo que proporciona la capacidad de autenticación de usuario para Eureka Server.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2Agregue el siguiente contenido en application.yml:
spring:
security:
user:
name: root
password: root
Esto agrega autenticación básica HTTP a Eureka Server. Si este contenido no está configurado, la cuenta predeterminada es usuario y la contraseña es un valor aleatorio, que se imprimirá al inicio.
3 Cree una clase de archivo de configuración y habilite la función de autenticación
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;
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable(); //关闭csrf
super.configure(http); //开启认证
}
}
4 Registre el microservicio en el servidor Eureka que requiere autenticación
defaultZone: http://root:root@localhost:8761/eureka/
Finalmente, el contenido de application.yml es el siguiente:
# 指定该Eureka实例的端口
# enableSelfPreservation是否启动自我保护机制
#server:
# port: 8761
# enableSelfPreservation: true
#eureka:
# client:
# service-url:
# defaultZone: http://localhost:8761/eureka/
# register-with-eureka: false
# fetch-registry: false
spring:
application:
name: discovery-eureka
profiles:
active: peer2
---
spring:
profiles: peer1
security:
user:
name: root
password: root
server:
port: 8761
eureka:
client:
registry-fetch-interval-seconds: 30
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://root:root@peer2:8762/eureka/
---
spring:
profiles: peer2
security:
user:
name: root
password: root
server:
port: 8762
eureka:
client:
fetch-registry: true
register-with-eureka: true
service-url:
defaultZone: http://root:root@peer1:8761/eureka/
Configuración en proyectos de proveedores y consumidores
Los archivos de configuración en el proyecto del proveedor y el proyecto del consumidor también deben agregar información de configuración relevante
eureka:
client:
service-url:
defaultZone: http://root:root@peer1:8761/eureka/,http://root:root@peer2:8762/eureka/
instance:
prefer-ip-address: true
De esta forma, los consumidores y los servidores pueden registrarse en el componente de servicio.
prueba
El último artículo ya lo ha presentado en detalle, así que no voy a molestar.
Visite el componente de servicio nuevamente: http: // peer2: 8762
le pedirá que ingrese el nombre de usuario y la contraseña como se muestra en la figura siguiente:
Si no lo configura en el archivo de configuración del proyecto del componente de servicio como se muestra en la figura:
entonces la contraseña es la contraseña generada aleatoriamente cuando lo inicia
Si está configurado, es la contraseña en su archivo de configuración
Esta seguridad de autenticación está configurada