Spring Cloud 는 어떻게 마이크로 서비스 내 안전 을 보장 합 니까?
4621 단어 SpringCloud마이크로 서비스안전 하 다.
마이크로 서비스의 구조 에서 우 리 는 시스템 의 업 무 를 여러 개의 단일 한 마이크로 서비스 로 나 눌 필요 가 있다.모든 마이크로 서 비 스 는 인 터 페 이 스 를 제공 하여 다른 마이크로 서비스 호출 을 제공 합 니 다.Dubbo 에서 rmi,nio 등 을 통 해 이 루어 질 수 있 고 Spring Cloud 에서 http 를 통 해 호출 됩 니 다.
그러나 어떤 때 는 사용자 가 우리 의 게 이 트 웨 이 를 통 해 마이크로 서 비 스 를 호출 하 기 를 바 랄 뿐 사용자 가 직접 마이크로 서 비 스 를 요청 하 는 것 을 허락 하지 않 습 니 다.이때 우 리 는 Spring Security 를 통 해 안전 을 보장 할 수 있다.
2.사용 절차
2.1 인 터 페 이 스 를 제공 하 는 마이크로 서비스 항목 에 Spring Security 설정
1.먼저 pom.xml 에 Spring Security 와 관련 된 설정 을 도입 합 니 다.다음 과 같 습 니 다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2 qpplication.yml 에 계 정 비밀 번 호 를 설정 합 니 다.다음 과 같 습 니 다.
security:
basic:
enabled: true
user:
name: sunbufu
password: 123456
3.이때 인 터 페 이 스 를 방문 하면 인증 이 필요 합 니 다.정확 한 계 정과 비밀 번 호 를 입력 하면 방문 할 수 있 습 니 다.
2.2 마이크로 서비스 호출 항목 에 Feign 의 계 정 비밀 번 호 를 설정 합 니 다.
1.application.yml 에 계 정 비밀 번 호 를 설정 합 니 다.
security:
user:
name: sunbufu
password: 123456
2 Feign 프로필 추가
package com.sunbufu.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.auth.BasicAuthRequestInterceptor;
@Configuration
public class FeignConfiguration {
@Value("${security.user.name}")
private String userName;
@Value("${security.user.password}")
private String passWord;
@Bean
public BasicAuthRequestInterceptor basicAuthRequestInterceptor(){
return new BasicAuthRequestInterceptor(userName, passWord);
}
}
3 이렇게 완성 하면 정상적으로 방문 할 수 있 습 니 다.실례
git 소스 주소:https://github.com/sunbufu/sunbufu-cloud
다음은 이 네 개의 공사 에 대한 설명 이다.
1.sunbufu-erueka:Eureka 서비스의 프로젝트
2.sunbufu-hello-face:서비스 인터페이스의 정의 프로젝트 는 마이크로 서비스 가 어떤 기능 을 실현 해 야 하 는 지,다른 마이크로 서비스 가 어떻게 호출 되 는 지,그리고 feign 의 설정 을 포함한다.
3.sunbufu-hello-impl:서비스 인터페이스의 실현 프로젝트 는 sunbufu-hello-face 정의 기능 을 실현 했다.
4.sunbufu-hello-web:서비스의 게 이 트 웨 이 프로젝트 는 주로 sunbufu-hello-face 를 호출 하기 위해 서 입 니 다.
Spring Cloud 서비스 보안 연결
Spring Cloud 는 HTTP Basic 인증 을 추가 하여 서비스 연결 의 안전성 을 높 일 수 있다.
1.보안 실행 기 가입
maven 설정 파일 에 Spring Boot 의 security 실행 기 를 추가 합 니 다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
이렇게 하면 서비스 연결 에 대한 안전 보 호 를 엽 니 다.시스템 은 기본적으로 사용자 이름 인'user'와 무 작위 비밀 번 호 를 만 듭 니 다.무 작위 비밀 번 호 는 서비스 가 시 작 될 때 로그 에 인쇄 됩 니 다.2.사용자 이름 비밀번호 사용자 정의
무 작위 비밀 번 호 는 실제 적 인 의미 가 없습니다.사용자 이름과 비밀 번 호 를 고정 적 으로 연결 해 야 합 니 다.
응용 프로필 에 다음 설정 을 추가 하면 됩 니 다.
security:
user:
name: admin
password: admin123456
이렇게 설정 한 후 이 서 비 스 를 연결 할 때 사용자 이름과 비밀 번 호 를 입력 하 라 고 요구 합 니 다.인증 에 실패 하면 401 오 류 를 되 돌려 줍 니 다.
{
"timestamp": 1502689874556,
"status": 401,
"error": "Unauthorized",
"message": "Bad credentials",
"path": "/test/save"
}
3.안전 연결1.등록 센터 안전 연결
username:password@ipaddress
2.Feign 설명 식 서비스 안전 연결
@FeignClient(name = "SERVICE", configuration = FeignAuthConfig.class)
public interface OrderService extends OrderAPI {
}
@Configuration
public class FeignAuthConfig {
@Bean
public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
return new BasicAuthRequestInterceptor("admin","admin123456");
}
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringCloud OAuth2 + JWT 인증 인증(一) 인증 서버Spring Cloud oAuth2(1) 라이센스 서버 구축 및 액세스 Spring Cloud oAuth2(2) 리소스 서버 구축 및 테스트 SpringCloud OAuth2 + JWT 인증 인증(一) 인증 서버 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.