Горячее определение роли web.xml в веб-проекте - PullRequest
3 голосов
/ 20 декабря 2011

Я занимаюсь разработкой веб-проекта на Java EE и хочу, чтобы некоторые JSP были доступны только некоторым пользователям.Я читал, что с помощью дескриптора web.xml я могу установить видимость некоторых ресурсов только на «роль-имя».Но как мне установить это имя роли в сеансе http?
Например, мой дескриптор имеет:

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Access to Student pages</web-resource-name>
      <url-pattern>/Student/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Student</role-name>
    </auth-constraint>
  </security-constraint>

Где / Как определить имя роли «Студент»?

1 Ответ

2 голосов
/ 24 августа 2012

Это работа вашего сервера приложений. Сервер сохранит роли в сеансе после аутентификации (если аутентификация выполняется сервером).


web.xml - в вашем приложении

<security-constraint>
    <web-resource-collection>
        <url-pattern>/Student/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>Student</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
</login-config>

Как назначить пользователей / логины роликам зависит от сервера, вот очень простой пример для tomcat:

tomcat-users.xml - Этот файл находится на вашем сервере, вы должны расширить его!

 <?xml version='1.0' encoding='utf-8'?>
 <tomcat-users>
    <role rolename="tomcat"/>

     <role rolename="Student"/>  <!-- you have to define all roles -->

    <user username="tomcat" password="tomcat" roles="tomcat"/>

    <user username="myname" password="mypassword" roles="Student"/> <!-- you have to assign login and roles -->
 </tomcat-users>
...