2013-06-19 6 views
0

Я создаю веб-приложение с использованием Java ee. У меня есть сервер v4 для стеклянной рыбы, и сейчас я пытаюсь заставить безопасность работать, указав ограничения безопасности в моем файле web.xml.Декларативная безопасность для приложения java ee

Мое приложение называется linkUI, и я хотел попытаться создать защищенную область, в которой вы должны были войти в систему, чтобы получить доступ к любому из ресурсов на localhost: 8080/linkUI/area, поэтому я добавил ограничение безопасности для этого в web.xml. Но когда я пытаюсь получить доступ к этому адресу, я получаю «HTTP Status 404 - Not Found» (я еще не создал никаких ресурсов) вместо того, чтобы перенаправляться на страницу входа, которую я настроил в дескрипторе развертывания. Кажется, он находит дескриптор развертывания, потому что, когда я вхожу в login.jsp напрямую, он перенаправляет меня на страницу ожидаемых ошибок. Хотя логин всегда терпит неудачу, хотя я добавил пользователя и группу на сервер Glassfish и включил Default Principal для сопоставления ролей, как указано здесь: http://docs.oracle.com/javaee/6/tutorial/doc/bncbx.html#bncby.

Я не уверен, что проверить прямо сейчас. Какие-либо предложения?

Это моя web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
     <!-- SECURITY CONSTRAINT #1 --> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Protected area</web-resource-name> 
      <url-pattern>/linkUI/area/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>testgroup</role-name> 
     </auth-constraint> 
    </security-constraint> 
    <login-config> 
     <auth-method>FORM</auth-method> 
     <realm-name>file</realm-name> 
     <form-login-config> 
      <form-login-page>/login.jsp</form-login-page> 
      <form-error-page>/loginError.jsp</form-error-page> 
     </form-login-config> 
    </login-config> 
    <security-role> 
     <description/> 
     <role-name>testgroup</role-name> 
    </security-role> 
</web-app> 

ответ

0

Если вы защищаете Localhost: 8080/linkUI/область/*, то linkUI является ваш корневой контекст и, по умолчанию, имя файла WAR. Это так?

Если да, то шаблоны URL должны быть по отношению к корневому контексту, таким образом:

<url-pattern>/area/*</url-pattern>