2008-09-16 2 views
2

내장 된 Jetty 6.1.7 프로젝트 내에서 양식 기반 인증을 사용하려고합니다.양식 인증으로 정적 내용을 제공하는 Embedded Jetty

그래서 나는 서블릿과 html (login.html)을 같은 문맥으로 서비스 할 필요가있다. 인증 작업을한다. 다른 컨텍스트가 다른 역할을해야하므로 구멍 적용을 보호하고 싶지 않습니다. 부두 javadoc에 의하면 ContextHandlerCollection은 하나의 컨텍스트에 대해 다른 핸들러를 처리 할 수 ​​있지만 작동시키지는 못한다고 나와 있습니다 ( ). 인증 항목을 무시하는 샘플이 작동하지 않습니다. 이유가 무엇입니까?

ContextHandlerCollection contexts = new ContextHandlerCollection(); 

// serve html  
Context ctxADocs= new Context(contexts,"/ctxA",Context.SESSIONS); 
ctxADocs.setResourceBase("d:\\tmp\\ctxA"); 
ServletHolder ctxADocHolder= new ServletHolder(); 
ctxADocHolder.setInitParameter("dirAllowed", "false");  
ctxADocHolder.setServlet(new DefaultServlet()); 
ctxADocs.addServlet(ctxADocHolder, "/"); 

// serve a sample servlet 
Context ctxA = new Context(contexts,"/ctxA",Context.SESSIONS); 

ctxA.addServlet(new ServletHolder(new SessionDump()), "/sda"); 
ctxA.addServlet(new ServletHolder(new DefaultServlet()), "/"); 

contexts.setHandlers(new Handler[]{ctxA, ctxADocs}); 

// end of snippet 

도움이되는 의견을 환영합니다!

감사합니다.

여주인

+0

부두 6.1.7 (1.6.7 아님)을 의미한다고 생각하나요? – jsight

답변

1

를 사용하여 웹 응용 프로그램 설명 :

은 web.xml에이을에 붙여 넣 인증없이

<login-config> 
    <auth-method>BASIC</auth-method> 
</login-config> 
<security-role> 
    <role-name>MySiteRole</role-name> 
</security-role> 

<security-constraint> 
    <display-name>ProtectEverything</display-name> 
    <web-resource-collection> 
     <web-resource-name>ProtectEverything</web-resource-name> 
     <url-pattern>*.*</url-pattern> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>MySiteRole</role-name> 
    </auth-constraint> 
</security-constraint> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>ExcludeLoginPage</web-resource-name> 
     <url-pattern>/login.html</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

이는 login.html하지만 모든 것을 숨 깁니다.

+0

감사하지만 임베디드해야합니다. 나는 내 질문을 다듬을 것이다. – Okami

2

마지막으로 올바른 해결책은 최신 부두 6.1.12 rc2를 사용하는 것입니다. 나는 그들이 무엇을 바꿨는지 확인하지 않았다.

관련 문제