2012-06-20 4 views
0

Моя учетная запись формы JSF работала с Constraint 1 однако, когда я добавил Constraint 2 в мой web.xml, выполняющий представление в форме, теперь меня заводит на страницу jsf javascript. Может ли кто-нибудь сказать мне, что я делаю неправильно? Я надеюсь, что это ошибка конфигурации.Добавление ограничения на роль пользователя перенаправляет браузер в jsf.js скрипт?

Я бы хотел, чтобы администраторы имели доступ к страницам/admin/* и только зарегистрированным пользователям, чтобы получить доступ ко всему сайту, включая файлы admin. BTW после того, как я увижу страницу сценария java, я все же могу перейти к намеченной странице в браузере, я просто не хочу, чтобы пользователь видел промежуточную страницу js или должен был знать URL целевой страницы.

Constraint 1

<security-constraint> 
    <display-name>Admin</display-name> 
    <web-resource-collection> 
     <url-pattern>/admin/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>ADMIN</role-name> 
    </auth-constraint> 
</security-constraint> 

Constraint 2

<security-constraint> 
    <display-name>Users</display-name> 
    <web-resource-collection> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>USER</role-name> 
    </auth-constraint> 
</security-constraint> 

Вот нежелательная URL я перенаправлены на:

javax.faces.resource/jsf.js.xhtml?ln=javax.faces&stage=Development 

Вот это начало из jsf.js.xhtml ... w Хич отображается на Firefox

/** 
@project JSF JavaScript Library 
@version 2.0 
@description This is the standard implementation of the JSF JavaScript Library. 
*/ 

/** 
* Register with OpenAjax 
*/ 
if (typeof OpenAjax !== "undefined" && 
    typeof OpenAjax.hub.registerLibrary !== "undefined") { 
    OpenAjax.hub.registerLibrary("jsf", "www.sun.com", "2.0", null); 
} 

// Detect if this is already loaded, and if loaded, if it's a higher version 
if (!((jsf && jsf.specversion && jsf.specversion >= 20000) && 
     (jsf.implversion && jsf.implversion >= 3))) { 

... 

В Internet Explorer 8.0.7 я получаю это всплывающее окно

js_popup

Примечания

Я использую Firefox 10.0.4, IE 8.03, Glassfish 3.1 w JSF2.0 lib, j_security_check и моя настройка для входа в систему аналогичны this

ответ