很高兴在Web项目中定义web.xml角色名称

时间:2011-12-20 04:10:04

标签: security http jsp authorization

我正在使用Java EE开发Web项目,我希望某些JSP只能由某种用户访问。我已经读过使用web.xml描述符我可以将某些资源的可见性设置为'role-name'。但是如何在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 个答案:

答案 0 :(得分:2)

这是应用程序服务器的工作。服务器将在身份验证后将角色存储在会话中(如果服务器进行身份验证)。


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>

如何将用户/登录分配给rolles是依赖于服务器的,这里是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>