في جافا تطبيق الويب (الحرب)، كيف يمكنني استخدام HTTP-المصادقة على محتوى ثابت؟

StackOverflow https://stackoverflow.com/questions/825142

سؤال

ولدي جافا تطبيق الويب. يتم حزم تطبيق الويب باعتباره ملف الحرب. هذه حرب ملف تسمح محتوى ثابت، التي يتم تسليمها مباشرة عبر HTTP. لالسيرفلتس في هذه الحرب يمكنني جعل HTTP المصادقة (تنفيذه مع بريمج نفسه). ولكن أريد أيضا HTTP-المصادقة على محتوى ثابت. كيف يمكنني تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

وإنشاء فئة التي تطبق javax.servlet.Filter. انظر أساسيات شروط

والأسلوب الرئيسي هو doFilter التي يتم تمريرها الكائنات ServletRequest، ServletResponse وFilterChain. هذا هو المكان الذي فرض المصادقة.

وبعد ذلك أعلن الفلتر في web.xml وتعيين مرشح على النحو التالي (خرائط لكل طلب)

    <filter>
            <filter-name>Authentication Filter</filter-name>
            <filter-class>
                    com.nfsdsystems.security.filters.AuthenticationFilter</filter-class>
    </filter>
    <filter-mapping>
            <filter-name>Authentication Filter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>

نصائح أخرى

ووضع ملفات HTML ثابتة بك في دليل وتحديد القيود الأمنية الخاصة بك في web.xml الخاص بك. تعيين قيود على الدور المناسب.

<security-constraint>
        <display-name>securedResources</display-name>
        <web-resource-collection>
            <web-resource-name>securedRes</web-resource-name>
            <url-pattern>/secured/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
            <http-method>HEAD</http-method>
            <http-method>TRACE</http-method>
            <http-method>POST</http-method>
            <http-method>DELETE</http-method>
            <http-method>OPTIONS</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>
            authenticatedUser_securedRes</description>
            <role-name>authenticatedUsed</role-name>
        </auth-constraint>
    </security-constraint>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top