2012-02-24 6 views
4

У меня есть файл web.xml. Я всегда приветствовал страницу в проверку безопасности, чтобы она перенаправлялась на страницу входа, но страница приветствия отображается без входа пользователя. путь? enter image description hereСтраница приветствия отображается без переадресации на страницу входа

<welcome-file-list> 
     <welcome-file>/GISPages/welcome.xhtml</welcome-file> 
    </welcome-file-list> 

    <resource-ref> 
     <res-ref-name>jdbc/Gis_WebApp</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 


    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Protected Pages</web-resource-name> 
      <url-pattern>/GISPages/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>registereduser</role-name> 
      <role-name>admin</role-name> 
     </auth-constraint> 
    </security-constraint> 

    <login-config> 
     <auth-method>FORM</auth-method> 
     <realm-name>Live</realm-name> 
     <form-login-config> 
      <form-login-page>/login.xhtml</form-login-page> 
      <form-error-page>/noauth.xhtml</form-error-page> 
     </form-login-config> 
    </login-config> 

    <security-role> 
     <role-name>registereduser</role-name> 
    </security-role> 

    <security-role> 
     <role-name>admin</role-name> 
    </security-role> 
+0

Под тегом 'web-resource-collection' вы имеете двойную запись для' url-pattern'. Это может быть причиной проблемы. Где находится остальная часть файла? –

+0

@maple_shaft удалил те, но все еще ту же проблему. ну, я добавил файл изображения. – kinkajou

+2

Просто сравнил его с моей конфигурацией. Единственное отличие заключается в том, что login.xhtml и error.xhtml также находятся в защищенной папке, а не снаружи. Просто догадка. –

ответ

1

ограничений безопасности защищает шаблон URL, но в этом случае из-за Приветствовать-файл настройки вашего URL по умолчанию изменится на что-то вроде HTTP: //: порт/webcontext/и welcome.xhtml будет отображаться , Принимая во внимание, что в соответствии с шаблоном URL-адреса защищенный URL-адрес должен иметь URL-адрес, например http: //: port/webcontext/GISPages/welcome.xhtml Поскольку шаблон URL не соответствует серверу приложений, отображайте содержимое страницы.

Только решение, которое работает для меня, чтобы проверить UserPrincipal в пререндер случае

<f:event type="preRenderComponent" 
listener="#{bean.forwardToLoginIfNotLoggedIn}" /> 

и перенаправлять login.xhtml если UserPrincipal возвращает нуль.

Извинения за открытие старой резьбы. Недавно я столкнулся с подобной проблемой, поэтому подумал, что это может быть полезно для некоторых.