我正在使用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>
在哪里/如何定义'学生'角色名?
答案 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>