두 손끝의 창조자

Received status code 401 from server: Content access is protected by token 본문

패키지관리

Received status code 401 from server: Content access is protected by token

codinglog 2025. 2. 25. 16:52

문제 상황

Maven 프로젝트를 OSSRH(Maven Central)에 배포하려고 할 때 다음과 같은 오류가 발생했습니다:

Execution failed for task ':publishMavenPublicationToOSSRHRepository'.
> Failed to publish publication 'maven' to repository 'OSSRH'
> Could not PUT 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/io/github/xxxxxxxx/xxxx-lib/0.3.3/xxxx-lib-0.3.3.jar'.
Received status code 401 from server: Content access is protected by token

이 오류는 최근 Sonatype이 보안 강화를 위해 인증 방식을 변경하면서 발생하는 문제입니다. 기존에는 일반 사용자 이름과 비밀번호를 사용하여 배포할 수 있었지만, 이제는 사용자 토큰을 사용해야 합니다.

원인

Sonatype OSSRH는 Maven Central에 아티팩트를 배포하기 위한 호스팅 서비스입니다. 보안 강화를 위해 기존의 사용자 이름/비밀번호 인증 방식에서 토큰 기반 인증으로 정책을 변경했습니다. 따라서 기존 방식으로 배포를 시도하면 401 오류가 발생합니다.

해결 방법

1. 사용자 토큰 생성하기

먼저 Sonatype Nexus Repository Manager에서 사용자 토큰을 생성해야 합니다:

profile 열기

  1. Sonatype Nexus Repository Manager 웹 인터페이스에 접속합니다:
  2. 우측 상단의 노란색 드롭다운 메뉴에서 Profile 옵션을 선택합니다.
  3. Profile 탭에서 입력 필드에서 User Token 옵션을 선택합니다.

4. Access User Token 버튼을 클릭합니다 (자격 증명을 다시 입력해야 할 수 있습니다)

5.생성된 토큰을 복사하여 저장합니다.

 

2. 토큰 적용

기존의 username과 password를 대체하여 생성된 토큰을 사용합니다.

github라면 프로젝트->settings->Actions secrets and variables 에서 생성된 토큰을 적용합니다.

반응형
Comments