2008-09-16 22 views
2

靜態內容的嵌入式碼頭我嘗試一個嵌入式的Jetty 6.1.7項目中使用基於表單的認證。服務與形式的認證

這就是爲什麼我要爲servlet和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

我假定你的意思是Jetty 6.1.7(不是1.6.7)? – jsight 2008-09-16 15:29:42

回答

1

使用Web應用程序描述:

在此粘貼到你的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 2008-09-19 13:14:19

2

最後我明白了,解決方法是使用最新的jetty 6.1.12 rc2。 我也沒查出來,他們改變什麼 - 我很高興的是現在的工作。