2017-01-18 2 views
0

나는 ejb 모듈과 war 모듈이있는 귀 패키지가 있습니다. ejb 모듈은 rest service를 가지고 있습니다. 왜냐하면 jboss eap 7에 배포하기 때문입니다. 내 전쟁 응용 프로그램은 로그인을 필요로JEE7 - JSF 및 resteasy 공유 컨텍스트 루트

http://localhost/context-root/index.html

http://localhost/context-root/rest-api/config/1

문제가되는 :

문제는 나머지 서비스와 전쟁 응용 프로그램 공유 같은 컨텍스트 루트가

예이다 작동하도록하지만, 사용자로서 웹에 로그인하지 않으면 나머지 API를 호출 할 수 없습니다.

솔루션에 대한 생각은 서블릿에 관한 것이지만 그 방법을 이해할 수는 없습니다.

어떤 도움을 주셔서 감사합니다 내 web.xml을

<servlet> 
    <servlet-name>future-web</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet> 
    <servlet-name>Push Servlet</servlet-name> 
    <servlet-class>org.primefaces.push.PushServlet</servlet-class> 
    <init-param> 
     <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name> 
     <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    <async-supported>true</async-supported> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Push Servlet</servlet-name> 
    <url-pattern>/primepush/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>future-web</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

에서이 자사의 압축을 풉니 다.

감사

UPDATE :

이 내가 무엇을 가지고 :

로컬 호스트/컨텍스트 루트/index.html을

로컬 호스트/컨텍스트 루트/나머지-API/설정/1

이것은 내가 찾고있는 것입니다 :

loca 이 lhost/컨텍스트 루트/index.html을

로컬 호스트/나머지-API/설정/구현하려는 않는 로그인 어떤 종류의

+0

회원님이 알고 확실하지만, localhost''에 대한 링크는 우리의 모든 PC에서 작동하지 않습니다. –

+0

예, localhost 부분은 demostration 용도로만 사용됩니다. 감사! – cmd

+0

문제를 해결 했습니까 – thst

답변

0

하나? 양식 기반 또는 http 인증?

web.xml에 보안 제한 조건을 추가해야합니다. 다음 스 니펫은 두 개의 역할 apiapplication을 추가합니다. 이러한 역할은 제약 조건의 두 리소스 컬렉션에 추가됩니다. 그런 다음 로그인 메소드 BASIC이 선택됩니다.

현재 주제에 대한 더 많은 정보를 찾을 수 있습니다 https://docs.oracle.com/cd/E11035_01/wls100/security/thin_client.html#wp1045995

<security-role> 
    <role-name>api</role-name> 
</security-role> 
<security-role> 
    <role-name>application</role-name> 
</security-role> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name> 
      API Servlet 
     </web-resource-name> 
     <url-pattern>/primepush/*</url-pattern> 
    </web-resource-collection> 
    <!-- uncomment constraint to enable authentication for webservice path 
    <auth-constraint> 
     <role-name>api</role-name> 
    </auth-constraint> --> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name> 
      Application 
     </web-resource-name> 
     <url-pattern>/*.xhtml</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>application</role-name> 
    </auth-constraint> 
</security-constraint> 

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Application Login</realm-name> 
</login-config> 
+0

안녕하세요, 나머지 서비스는 어떤 종류의 인증도 가지고 있지 않습니다. 반면에 jsf 웹 애플리케이션은 로그인 화면에서 양식 기반 인증을 수행합니다. 웹 응용 프로그램에 로그인하면 나머지 서비스에 액세스 할 수 있습니다. – cmd

+0

auth 제약없이 api 경로에 대한 보안 제약 조건을 정의하면이 경우 도움이됩니다. 그렇지 않으면 나머지 API가 허용되기 전에 로그인이 필요하다는 의미입니까? – thst

관련 문제