2016-09-14 4 views
0

CXF에서 CXF (Red Hat JBoss Fuse) (패브릭 내)에 구현 된 SOAP/REST 서비스가 있습니다. 기본 인증으로 보호해야하며 LDAP 서버에서 자격 증명을 확인해야합니다.LDAP 사용자의 기본 인증으로 퓨즈에서 CXF 서비스 보호

사용자 정의 인터셉터없이이 작업을 수행 할 수 있습니까?

콘솔을 보호 할 수있는 것과 같은 방식으로 서비스를 보호하기 위해 컨테이너 JAAS 보안 (LDAP로 구성됨)을 사용할 수 있습니까?

답변

0

예 컨테이너 JAAS 보안 영역을 사용하여 웹 서비스를 보호 할 수 있습니다. 예는 here입니다. 예제 페이지가 구현을 설명하지 않지만, blueprint.xml 파일 얼핏는 다음과 같은 구성을 보여준다 :

<jaxrs:server id="customerService" address="/securecrm"> 
    <jaxrs:serviceBeans> 
     <ref component-id="customerSvc"/> 
    </jaxrs:serviceBeans> 
    <jaxrs:providers> 
     <ref component-id="authenticationFilter"/> 
    </jaxrs:providers> 
</jaxrs:server> 
<bean id="authenticationFilter" class="org.apache.cxf.jaxrs.security.JAASAuthenticationFilter"> 
    <!-- Name of the JAAS Context --> 
    <property name="contextName" value="karaf"/> 
</bean> 

그래서 그것은 JAAS 인증 필터를 구성의 문제입니다. "karaf"는 컨테이너의 기본 JAAS 영역입니다. 사용자는 etc/users.properties에 정의되어 있습니다. 더 많은 영역을 정의하려면 정보가 here입니다. LDAP에 사용자가 있으려면 here을 참조하십시오.

0

위의 대답은 정확하지만 더 최근 버전의 Fuse (이전 6.1)의 경우 기본 karaf 영역을 덮어 쓰려면 LDAP 구성의 "순위"가 100보다 커야합니다. 현재 패치 적용과

은 또한, 퓨즈 6.2.X에서 LDAP 연결에 대한 연결 풀링을 사용할 수 있습니다 : 이것은 대량의 웹 서비스에 대한 매우 중요합니다

<!-- LDAP connection pooling --> 
    <!-- http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/pool.html --> 
    <!-- http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html --> 
    context.com.sun.jndi.ldap.connect.pool=true 

    </jaas:module> 
</jaas:config> 

. 연결 풀은 LDAP 서버에 유지 관리됩니다. 이것은 연결 생성 오버 헤드를 피하고 TIME-WAIT 상태에서 닫혀있는 소켓을 가지고 있습니다.

+0

매우 유용한 정보입니다. 이 세부 정보를 설명하는 문서 링크를 게시 할 수 있습니까? 고맙습니다. – xtian

+0

연결 풀링에 대해서는 https://access.redhat.com/solutions/2219901을 참조하십시오. –