Spring Security 의 Http Basic 로그 인 인증 모드 에 대한 자세 한 설명

1.Http Basic 모드 의 응용 장면
Http Basic 로그 인 인증 모드 는 Spring Security 가 로그 인 인증 을 실현 하 는 가장 간단 한 방식 이자 가장 초라 한 방식 이 라 고 할 수 있 습 니 다.그것 의 목적 은 로그 인 검증 의 절대적 인 안전 을 보장 하 는 것 이 아니 라'군자 불 방 소인'의 로그 인 검증 을 제공 하 는 것 이다.
마치 내 가 어 렸 을 때 일 기 를 쓴 것 처럼 작은 자물쇠 가 달 린 일기장 을 샀 는데,사실 이 작은 자 물 쇠 는 무슨 소 용이 있 습 니까?진짜 보고 싶 은 사람 은 못 하나 로 다 비 틀 어 열 수 있어.어느 날 부모님 이 당신 의 일 기 를 훔 쳐 보고 싶 어 하 셔 서 꺼 내 보 니 자 물 쇠 를 가 져 오 셨 어 요.그럼 됐어 요.귀찮아 요.
제 가 Http Basic 모델 을 사용 하여 로그 인 검증 을 한 예 를 들 어 저 는 한 회사 에서 부서 장 을 맡 는 동안 통계 효율,지식 공유,코드 생 성,보고서 내 보 내기 에 사용 되 는 Http 인 터 페 이 스 를 개 발 했 습 니 다.순 전 히 업무 에서 효율 을 높이 는 동시에 저 는 약간의 사심 이 있 습 니 다.각 부서 간 에 경쟁 이 있 기 때문에 저 는 이 인터페이스 에 Http Basic 검증 을 추 가 했 습 니 다.회사 안의 어떤 기술자 라 도 최대 한두 시간 만 주면 이 검증 을 풀 수 있다.말하자면 이 도구 의 데 이 터 는 그다지 중요 하지 않 고 자 물 쇠 를 추가 하 는 목적 은 그것 이 공개 데이터 가 되 지 않도록 하 는 것 이다.마음 만 먹 으 면 이 안의 데 이 터 를 보고 싶 어도 무방 하 다.이것 이 바로 Http Basic 모델 의 전형 적 인 응용 장면 이다.
2.spring boot 2.0 통합 Spring security
spring boot 2,x 버 전 maven 방식 으로 Spring security 좌 표를 도입 합 니 다.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>
3.Http Basic 로그 인 인증 모드
Spring Boot 버 전이 1.X 버 전 이 고 Security 4.X 버 전 에 의존 하면 설정 이 필요 없 으 며 프로젝트 접근 을 시작 하면 기본 httpbasic 인증 이 팝 업 됩 니 다.
현재 사용 하고 있 는 것 은 spring boot 2.0 버 전(Security 5.X 버 전 의존)입 니 다.Http Basic 은 더 이상 기본 인증 모드 가 아 닙 니 다.spring security 5.x 의 기본 인증 모드 는 폼 모드 입 니 다.그래서 우 리 는 Basic 모드 를 사용 하려 면 스스로 조정 해 야 한다.그리고 security.basic.enabled 는 시간 이 지 났 기 때문에 우 리 는 스스로 인 코딩 을 해 야 합 니 다.

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
  
  @Override
  protected void configure(HttpSecurity http) throws Exception {
   http.httpBasic()//  httpbasic  
   .and()
   .authorizeRequests()
   .anyRequest()
   .authenticated();//               
  }
}
프로젝트 를 시작 합 니 다.프로젝트 배경 에 로그 인쇄 가 있 습 니 다.콜론 뒤에 있 는 것 은 기본 비밀번호 입 니 다.

Using generated security password: 0cc59a43-c2e7-4c21-a38c-0df8d1a6d624
브 라 우 저 를 통 해 로그 인 인증 을 할 수 있 습 니 다.기본 사용자 이름 은 user 입 니 다.(아래 로그 인 상 자 는 우리 가 개발 한 것 이 아니 라 Http Basic 모드 에서 가 져 온 것 입 니 다)

물론 애플 리 케 이 션.yml 을 통 해 사용자 이름 비밀 번 호 를 지정 할 수 있 습 니 다.

spring:
  security:
   user:
    name: admin
    password: admin
4.Http Basic 모델 의 원리 설명
  • 우선 Http Basic 모드 에서 전 송 된 사용자 이름 비밀 번 호 를 Base 64 모드 로 암호 화 합 니 다.사용자 이름 이"admin"이면  ,암 호 는"admin"입 니 다.문자열"admin:admin"을 Base 64 인 코딩 알고리즘 으로 암호 화 합 니 다.암호 화 결 과 는 YWtaW46YWRtaW 4=일 수 있 습 니 다.
  • 그리고 Http 요청 에서 Authorization 을 Header 로 사용 합 니 다."Basic YWtaW46YWRtaW 4="Header 의 값 으로 서버 에 보 냅 니 다.(여기에 Basic+스페이스 바+암호 화 문자열 사용 하기)
  • 서버 가 이러한 요청 을 받 았 을 때 Basic AuthenticationFilter 필터 에 도착 하면'Authorization'의 Header 값 을 추출 하고 사용자 인증 에 사용 할 동일 한 알고리즘 Base 64 를 사용 하여 디 코딩 합 니 다.
  • 4.567917.디 코딩 결 과 는 로그 인 인증 사용자 이름 비밀번호 와 일치 하 며,일치 하면 필터 의 후속 접근 을 계속 할 수 있 습 니 다.
    그래서 Http Basic 모델 은 정말 간단 하고 허름 한 검증 모델 입 니 다.Base 64 의 암호 화 알고리즘 은 역 동적 입 니 다.위의 원 리 를 알 고 분 안에 풀 수 있 습 니 다.우 리 는 PostMan 도 구 를 사용 하여 Http 요청 을 보 내 로그 인 검증 을 할 수 있 습 니 다.

    총결산
    위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 Spring Security 의 Http Basic 로그 인 인증 모델 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
    만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

    좋은 웹페이지 즐겨찾기