Аутентификация на основе форм JBoss. Всегда перенаправляет в файл CSS

0

Я пытаюсь реализовать проверку подлинности на основе форм в JBoss 7.2.

web.xml:

<web-app>
  <security-constraint>
    <web-resource-collection>
        <web-resource-name>Everything needs authentication</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>

    <auth-constraint>
        <role-name>MySuperRole</role-name>
    </auth-constraint>
  </security-constraint>

  <security-role>
    <role-name>MySuperRole</role-name>
  </security-role> 

  <login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/loginError.html</form-error-page>
    </form-login-config>
  </login-config>
</web-app>

JBoss-web.xml

<jboss-web> 
      <context-root>myctx</context-root>
      <security-domain>my-policy</security-domain>
</jboss-web>

Моя политика правильно настроена в файле standalone.xml

Проблема после входа в систему, я перенаправлен на файл css, который я использую на своих html-страницах.

Если я не закрою браузер после входа в систему, и я снова попытаюсь вернуться к правильной странице, теперь он работает, так как я аутентифицирован 1 секунду назад, но изначально я всегда перехожу в файл css. Любые мысли о том, почему это происходит?

  • 0
    Вы нашли способ? Я сталкиваюсь с этой проблемой в WebSphere, работает нормально в Tomcat.
  • 0
    Да. Смотрите принятый ответ. И еще один способ - добавить ограничение безопасности, чтобы разрешить доступ к вашим файлам css и js. Один позволяет получить доступ, НЕ указав <auth-constraint>: например, <security-constraint> <web-resource-collection> <web-resource-name> NotImportant </ web-resource-name> <url-pattern> / resources / * </ url-pattern> </ web-resource-collection> </ security-constraint>
Показать ещё 2 комментария
Теги:
java-ee
jboss
forms-authentication

1 ответ

2
Лучший ответ

Поэтому, видимо, файл.css, к которому я был перенаправлен, находился внутри моего /login.html. Как только я избавился от каких-либо css, ссылок на javascript внутри html. Он начал работать. Думаю, мне придется встроить css в html файл. Я не знаю другого решения.

EDIT: (для @Aragorn)

Да, я использую ссылку в стиле листа, и это работает. Но для этого вам нужно установить ограничение аутентификации (см. Выше) в файле web.xml. Поскольку JBoss/WebSphere должен иметь UNAUTHENTICATED доступ к файлу таблицы стилей, если это не так, то есть если для доступа к вашему файлу таблицы стилей требуется аутентификация, JBoss будет помнить, и когда вы входите в систему с использованием пользователя и пароля, перенаправит вас на первую ссылку в Личном листе /JS-ссылку в вашем.html файле, проверьте, всегда ли это первый файл, для которого требуется перенаправлять аутентификацию, если ссылки на листы ссылок /js-ссылки не требуют аутентификации, тогда вы будете перенаправлены к правильному html!

Также для путей ссылок считайте "базовым" html файл, который вы пытаетесь извлечь, а не login.html! (В моем случае они находятся в разных каталогах, чтобы заставить ограничения аутентификации работать)

  • 0
    Для тех, кто ищет WebSphere ..., эта проблема решена и в WebSphere 8.5.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню