2009-11-25 3 views
2

여러 OSGi 번들로 구성된 응용 프로그램이 있습니다. 유효한 토큰 (예 : 라이센스 키)이 제시되면 그들 중 일부는 자신의 서비스에 다른 번들 액세스 만 제공하도록하고 싶습니다.OSGi에서 번들에 대한 액세스를 보호하는 방법이 있습니까?

  • 보안 : 여기

    내가 그 번들에 대한 액세스를 제한 할 이유입니다 이러한 번들을 사용하고 어떤 응용 프로그램에 따라 다릅니다 때문에 그들은 자신의 액세스 정책이 없습니다. 즉, 클라이언트 번들에서 자신이 나타내는 응용 프로그램이나 사용자의 사용 권한을 확인해야한다는 것을 의미합니다. 나는 내가 신뢰하는 접근 제어 계획을 계속 통제하고 싶다.

  • 안정성 : 타사 모듈을 개발하여 시스템에 기능을 추가하는 것을 허용하고 권장합니다. 신뢰성을 보장 할 수 있도록 해당 확장이 시스템과 상호 작용할 수준을 제어하려고합니다. 또한, 내 번들은 테스트를 거친 조합에만 사용되도록하고 싶습니다.
  • 라이선스 : 일부 모듈에는 적절한 라이선스로만 사용할 수있는 기능이 있거나 고객이 다른 설치간에 번들을 교체 할 수 없도록 할 수 있습니다.

나는 ServicePermission 클래스에 대한 몇 가지를 읽고 OSGi 프레임 워크에서 관련,하지만이 내가 원하는 무엇 번들 제조 업체, 반대로 사이트 관리자가 액세스 정책을 제어 할 수 있음을 나에게 표시했다.

답변

1

유스 케이스가 상당히 복잡해 보입니다. 그렇다면이 질문에 대한 답변이 충분한 것인지 잘 모르겠습니다. 그러나 OSGi Release 4, Version 4.2에 새로운 기능인 Service Hooks이 추가되었습니다. Find Hook

은 할 수 있어야한다 "봐, 그리고 getServiceReferencegetServiceReferences 방법의 결과.이 훅이 효과적으로 발신자에서 서비스를 숨기고, 서비스 참조가 결과에서 개체를 제거 할 수 있습니다, 줄일 수 있습니다." 이 기능을 사용

(피터 크리 엔스 (Kriens)에 의해 작성 article에서) 당신이 결정하기 위해 "검사"반대로 클라이언트 번들을 특정 서비스에 액세스하기 위해 자신을 "인증"클라이언트 번들 자신의 메커니즘을 구현 (또는 할 경우 특정 서비스에 대한 액세스 부여되어야한다).

관련 문제