[size=medium]
问题描述:
当我们的服务器中部署了很多web应用程序,但有些是需要权限才能访问的程序,那么如何能控制制定的web程序需要特殊的校验才能访问呢?
解决办法:
配置tomcat相关工程中的web.xml和tomcat中conf中的tomcat-users.xml。
第一步:首先在web.xml中添加相应的[/size]
[size=medium]第二步:现在我们来配置下tomcat-users.xml的信息[/size]
[size=medium]上面的xml中可以看到,我定义了一个manager的角色和一个用户,用户名,jxb,密码jxb,所拥有的角色是role1和manager,那么涉及到角色role1,manager的相关工程资源,就可以用这个用户登录进入了。[/size]
问题描述:
当我们的服务器中部署了很多web应用程序,但有些是需要权限才能访问的程序,那么如何能控制制定的web程序需要特殊的校验才能访问呢?
解决办法:
配置tomcat相关工程中的web.xml和tomcat中conf中的tomcat-users.xml。
第一步:首先在web.xml中添加相应的[/size]
<display-name>工程在web校验中显示的名称</display-name>
<security-constraint>
<web-resource-collection>
<web-resource-name>随便写的资源名称</web-resource-name>
<url-pattern>/jmxproxy/*</url-pattern>
<url-pattern> /*代表所有资源</url-pattern>
<url-pattern>/html/*</url-pattern> 代表当前工程html文件夹下的所有文件
<url-pattern>/list</url-pattern>
<url-pattern>/sessions</url-pattern>
<url-pattern>/start</url-pattern>
<url-pattern>/stop</url-pattern>
<url-pattern>/install</url-pattern>
<url-pattern>/remove</url-pattern>
<url-pattern>/deploy</url-pattern>
<url-pattern>/undeploy</url-pattern>
<url-pattern>/reload</url-pattern>
<url-pattern>/save</url-pattern>
<url-pattern>/serverinfo</url-pattern>
<url-pattern>/status/*</url-pattern>
<url-pattern>/roles</url-pattern>
<url-pattern>/resources</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- NOTE: 角色名称,必须是tomcat-users.xml中定义的角色和下面的<security-role>中引用的角色 -->
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>工程在web校验中显示的名称</realm-name>
</login-config>
<!-- Security roles referenced by this web application -->
<security-role>
<description>
The role that is required to log in to the Manager Application
</description>
<role-name>manager</role-name>
</security-role>
[size=medium]第二步:现在我们来配置下tomcat-users.xml的信息[/size]
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="jxb" password="jxb" roles="role1,manager"/>
</tomcat-users>
[size=medium]上面的xml中可以看到,我定义了一个manager的角色和一个用户,用户名,jxb,密码jxb,所拥有的角色是role1和manager,那么涉及到角色role1,manager的相关工程资源,就可以用这个用户登录进入了。[/size]