3

OK、以前はこの手法を従来の web.xml で使用していましたが、WebApplicationInitializer を使用しているため、機能させるのに問題があります。

私の WebApplicationInitializer には、次のコードが含まれています。

HttpConstraintElement constraint = new HttpConstraintElement(
        TransportGuarantee.NONE,
        new String[]{"sponsorUsers"});
ServletSecurityElement servletSecurity =
        new ServletSecurityElement(constraint);
dispatcher.setServletSecurity(servletSecurity);

サーブレット内のすべてのリソース要求に対して、すべての http メソッドに対して基本認証 (ユーザー名 + パスワード) を要求しようとしています。返されるのは 403 だけです。ユーザー名のプロンプトはありません。私の疑いは、xml の場合と同様に、auth-method を BASIC に設定する必要があるということです。

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>User Auth</realm-name>
</login-config>

しかし、Java クラスには同等のものはありません。何か助けはありますか?ありがとう!

4

1 に答える 1

4

AWebApplicationInitializerは基本的に Servlet 3.0 の Spring 拡張ですServletContainerInitializer

でできないことServletContainerInitializer、またはServletContextより具体的に言えば、いくつかのことがあり、そのうちの 1 つはいくつかのセキュリティ コンポーネントを構成することですlogin-config

代わりに、属性を に設定して aServletContainerInitializerと a の両方を使用できます。例えば、web.xmlmetadata-completefalse

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    metadata-complete="false" version="3.0">

次に、要素を追加します<login-config>

于 2013-09-18T14:59:57.100 に答える