2012-05-01 3 views
0

우리의 넥서스 저장소는 저장소 대상 권한을 사용하도록 구성되어 있습니다 : USER1이 com.company.group1에 배포 할 수 사용자 2가 com.company.group2에 배포 할 수있는 등maven settings.xml 파일에서 여러 사용자 이름을 사용할 수 있습니까?

우리는 사용자 1 및 사용자 자격 증명 모두를 가질 수 있습니다 .m2/settings.xml 파일의 동일한 Maven 저장소에 대해? 그들 중 하나에 대한 허가가 거부되면 Maven은 그것들을 시도 할 것인가?

+2

인증 메커니즘은 URL 또는 ID 및 콘텐츠 내부의 groupId를 기반으로하지 않기 때문에 발생합니다. 단일 저장소에서 왜 다른 인증을 필요로합니까? 그렇지 않으면 준비 저장소 (commericial release)를 사용해야합니다. – khmarbaise

+0

OP의 유스 케이스는 [Sonatype 블로그 게시물] (http://www.sonatype.com/people/2010/02/how-to-partition-nexus-repositories-targets-privileges-and-roles/)에 설명되어 있습니다. 단일 Nexus 저장소를 분할하기 위해 저장소 대상을 사용하는 방법에 대해 설명합니다. – user944849

답변

1

예 : 각 사용자마다 다른 프로파일을 사용하고 해당 프로파일의 등록 정보로 사용자 이름과 비밀번호를 설정하십시오. 그런 다음 현재 어떤 사용자로 작업할지에 따라 프로파일을 활성화 할 수 있습니다. 또한 프로파일 중 하나를 기본적으로 활성화되도록 설정하여 호출시 프로파일 이름을 항상 사용할 필요가 없습니다.

또 다른 방법은 사용자에게 settings.xml 파일을 별도로 지정하고 maven 호출에 -s 플래그를 사용하여 원하는 파일을 지정하는 것입니다.

+0

여러 설정 파일을 생각했지만 누군가가 리포지토리 대상을 사용하여 리포지토리에서 섹션을 만들려고 노력했다면 암호도 보호해야한다고 생각했습니다. 궁금한 점이있어, user1의 자격 증명을 사용하여 rep1에 사용자 1을 배포하는 것을 어떻게 유지하고 있습니까? – user944849

+0

난 그냥 user1 user2의 자격 증명을 말하지 말아라 ... 농담을 제쳐두고 나는 당신이 역할과 사용자를 혼합 생각합니다. 사람은 하나의 자격증 명 세트 (사용자 이름 + 비밀번호)에만 액세스해야하며 해당 사용자에게 필요한 역할과 액세스 권한이 부여되어야합니다. –

+0

사용자와 역할에 익숙하므로 일부 Nexus 설정을 완료했습니다. 내가 user1이고 repo-target X에만 배포 할 역할/권한을 부여 받았지만 user2에 대상 Y에 배포 할 적절한 역할이 부여 된 경우'mvn -s user2settings.xml deploy '하고 Nexus에서 승인되지 않은 레포에 아티팩트를 넣으시겠습니까? – user944849

0

내가 아는 한 동일한 settings.xml 파일에 자격 증명을 함께 사용할 수 없습니다. 이것이 큰 보안 구멍이 될 것 같습니다. 각 사용자는 빌드 머신에 로그인해야합니다. 각자 자신의 .m2/settings.xml.m2/settings-security.xml 파일을 가지고 있습니다 (후자는 encrypt passwords이어야합니다). 각 사용자는 배포 할 프로젝트의 <distributionManagement> 섹션에있는 ID와 일치하는 ID를 가진 <server> 항목을 추가합니다.

1

나는 내 Settings.XML의 대상 저장소에 대해 이러한 속성을 정의 프로파일을 가지고

<distributionManagement> 
    <repository> 
     <id>releases</id> 
     <url>${url.releases}</url> 
    </repository> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <url>${url.snapshots}</url> 
    </snapshotRepository> 
    <site> 
     <id>site</id> 
     <url>${url.site}</url> 
    </site> 
    </distributionManagement> 

로 삼았, distributionManagement에서 속성을 사용합니다. <id>은 settings.xml의 <server>과 일치하므로 다른 사용자 이름/비밀번호/저장소 조합에 대해 다른 <id>을 사용할 수 있습니다. settings.xml에서 <activeProfiles>을 배포에 필요한 기본 프로필로 설정합니다. 다른 프로파일로 전환해야하는 경우 명령 행에서 그렇게 할 수 있습니다.

관련 문제