Могу ли я поместить HTML-форму страницы входа в библиотеку для веб-приложения? - PullRequest
0 голосов
/ 02 марта 2011

Я пытался создать приложение с аутентификацией на странице входа.И для того же самого я добавил <form-login-page> в web.xml (как показано ниже).

Я собрал файлы logon.html и logonerror.html и добавил их в виде библиотеки вместе с .warфайл веб-приложения.(в разделе WEB-INF / lib / logon.jar).

Но при развертывании приложения появляется ошибка 404, ошибка logon.html не найдена.Есть какие-нибудь указатели на то, почему?Не могу ли я сохранить файлы входа в систему (htmls, js, css файлы) в библиотеке?

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>MyFilter</filter-class> 
     <init-param>
        <param-name>Domainname</param-name>
        <param-value></param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 

<security-constraint>
    <web-resource-collection>
        <web-resource-name>SecuredResources</web-resource-name>
        <url-pattern>/*</url-pattern>       
    </web-resource-collection>
    <auth-constraint>
        <role-name>Default_Role</role-name>
    </auth-constraint>
        <user-data-constraint>             
         <transport-guarantee>CONF</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
      <form-login-page>/logon.html</form-login-page>
      <form-error-page>/logonerror.html</form-error-page>
    </form-login-config>
  </login-config>  

   <security-role>
    <role-name>Default_Role</role-name>
  </security-role>

</web-app>

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Насколько я понимаю, WAR будет раскрывать только ресурсы, содержащиеся в его собственной структуре корневых файлов.Отсюда обходные пути (weblets, Maven config), упомянутые в ответах на на этот вопрос .Вы могли бы сделать собственный скрипт сборки, который распаковывал бы содержимое logon.jar в вашу WAR, но я определенно не рекомендовал бы такой взлом.Немного больше информации о , почему вы хотите сделать это, кто-то может предложить лучший подход.

0 голосов
/ 02 марта 2011

Насколько я понимаю, HTML-файлы должны быть помещены в WAR вместо JAR, потому что это веб-ресурсы. Файл JAR должен содержать только те классы / ресурсы, которые будут проверяться вашими веб-компонентами (например, сервлетом, JSP) с использованием механизма загрузки классов.

...