2012-05-18 8 views
1

p2 저장소 관리자가 HTTPS 저장소 (Apache + 클라이언트 인증서)에 연결하도록 구성하고 싶습니다.클라이언트 인증서가있는 HTTPS 저장소 (-ies)에 프로그래밍 방식으로 연결하도록 p2 저장소 관리자 구성

은 저장소를로드 할 수있는 몇 가지 방법을 사용할 수 있습니다 : 나는 HTTPS 서버에 URI를 제공 할 수

public IMetadataRepository loadRepository(URI location, IProgressMonitor monitor) throws ProvisionException, OperationCanceledException; 
public IMetadataRepository loadRepository(URI location, int flags, IProgressMonitor monitor) throws ProvisionException, OperationCanceledException; 
public IArtifactRepository loadRepository(URI location, IProgressMonitor monitor) throws ProvisionException; 
public IArtifactRepository loadRepository(URI location, int flags, IProgressMonitor monitor) throws ProvisionException; 

매개 변수 location와 함께. 클라이언트 및 CA 인증서가 포함 된 키 저장소/트러스트 저장소에 대한 경로를 어떻게 제공합니까? Java 프로세스에 전역 키 저장소를 사용하고 싶지 않습니다.

+0

리포지토리를 프로그래밍 방식으로 추가하는이 방법이 효과가 있었습니까? 'P2Util' 클래스를 게시 할 수 있습니까? (또는 당신이 repos의 로딩을하고 업데이트를 확인하고 있다면). 감사. – GGrec

답변

1

해결책을 찾았습니다. p2는 통신 레이어로 ECF을 사용합니다.

  • 설치하고 번들 (들)를 시작 :

    는 SSL 지원을 활성화하려면 org.eclipse.ecf.provider.filetransfer.httpclient.ssl 및/또는 org.eclipse.ecf.provider.filetransfer.ssl
  • 키 스토어 (들)과의 SSLSocketFactory 객체를 생성하고 OSGi 서비스로 등록

    SSLContext sslContext = SSLContext.getInstance ("SSL");

    sslContext.init (keymanagers, trustmanagers, null);

    SSLSocketFactory factory = sslContext.getSocketFactory();

    bundleContext.registerService (SSLSocketFactory.class.getName(), factory, null);

0

페이지의 "안전한 저장 런타임 옵션"도움말 장 : http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-securestorage-options.htm

... 또한 http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html

-eclipse.keyring <file path> (Equinox) 
    Set to override location of the default secure storage 

아마 당신은 소스를 살펴보면, 어떻게 든 프로그램이 값을 설정할 수 있습니다.

+0

이 설정은 전체 Eclipse Java 프로세스에 적용됩니다. 내 구성 번들의 일부이기 때문에, 즉석에서 저장소를 제공하고 싶습니다. –