2008-09-16 9 views
2

埋め込みJetty 6.1.7プロジェクト内でフォームベース認証を使用しようとしています。フォーム認証で静的コンテンツを提供する埋め込みJetty

それで、サーブレットとhtml(login.html)を同一のコンテキスト の下で提供して、認証を行う必要があるのです。 異なるコンテキストには異なる役割が必要であるため、私はホールアプリケーションを保護したくありません。 jetty javadocは、 ContextHandlerCollectionは1つのコンテキストに対して異なるハンドラーを処理できますが、私は を動作させると述べています。認証のものを無視している私のサンプルはうまくいかず、なぜですか?

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

答えて

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

2

最後に、私は解決策を得ました。解決策は最新のjetty 6.1.12 rc2を使用することです。 変更内容を確認していない - 今はうまくいきました。

関連する問題