在web应用中,对页面的访问控制通常通过程序来控制,流程为:
登录 -> 设置session -> 访问受限页面时检查session是否存在,如果不存在,禁止访问
对于较小型的web应用,可以通过tomcat内置的访问控制机制来实现权限控制。采用这种机制的好处是,程序中无需进行权限控制,完全通过对tomcat的配置即可完成访问控制。
为了在tomcat页面设置访问权限控制,在项目的WEB-INFO/web.xml文件中,进行如下设置:
<web-app>
<!--servlet等其他配置-->
<security-constraint>
<web-resource-collection>
<display-name>Example Security Constraint</display-name>
<web-resource-name>My Test</web-resource-name>
<url-pattern>/ddly/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
<role-name>tomcat</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My Test</realm-name>
</login-config>
</web-app>
其中,<url-pattern>中指定受限的url,可以使用通配符*,通常对整个目录进行访问权限控制。
<auth-constraint>中指定哪些角色可以访问<url-pattern>指定的url,在<role-name>中可以设置一个或多个角色名。
使用的角色名来自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。
<login-config>中设置登录方式,<auth-method>的取值为BASIC或FORM。如果为BASIC,浏览器在需要登录时弹出一个登录窗口。如果为FORM方式,需要指定登录页面和登录失败时的提示信息显示页面。
使用FORM方式的配置样例如下:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Example Form-Based Authentication Area</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
其中的<form-login-page>指定登录页面url,<form-error-page>指定登录失败时的提示页面url。
登录页面中,form的action,以及其中的用户名和密码两个参数的名称,都应取固定的值。登录的后台处理程序为j_security_check;用户名和密码的参数名称分别为:j_username和j_password。
如下是登录页面(如:login.jsp)的一段示例代码:
<form method="POST" action='<%= response.encodeURL("j_security_check") %>' >
<table border="0" cellspacing="5">
<tr>
<th align="right">Username:</th>
<td align="left"><input type="text" name="j_username"></td>
</tr>
<tr>
<th align="right">Password:</th>
<td align="left"><input type="password" name="j_password"></td>
</tr>
<tr>
<td align="right"><input type="submit" value="Log In"></td>
<td align="left"><input type="reset"></td>
</tr>
</table>
</form>
分享到:
相关推荐
- 创建一个批处理文件(例如`tomcat_autostart.bat`),内容包括启动Tomcat的命令(`startup.bat`)和检查其是否运行的逻辑。如果Tomcat未运行,该脚本将重新启动它。 - 使用任务计划程序(Task Scheduler)将此...
设置tomcat只允许域名访问 设置tomcat只允许域名访问
标题和描述提到的“tomcat+mysql+jdk脚本安装”表明这是一个自动化安装过程,通过脚本来一次性设置这些组件,便于快速搭建开发或生产环境。下面将详细解释这三个组件以及它们的相互作用。 1. JDK(Java Development...
在“apache-tomcat-7.0.52_mirrorhem_tomcat_almost5fx_源码.zip”这个压缩包中,我们可以期待找到以下关键组件和目录: 1. **bin**: 这个目录包含可执行脚本,用于启动、停止和管理Tomcat服务器。在Windows上,...
- 在云服务器环境中,还需检查防火墙设置是否允许外部访问这些管理页面。 - 对于安全性较高的生产环境,建议不要开放所有IP地址对管理页面的访问权限,而是根据实际需求进行细粒度的权限控制。 - 定期更换管理界面的...
JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签...
《Xalan-J_2_7_1:解决Tomcat5与JDK1.6兼容性问题的利器》 Xalan-J_2_7_1是一个关键的Java库,主要用于XML到HTML、XSLT转换,它在处理XML文档时扮演着重要的角色。这个版本的发布,特别是针对"bin"格式的压缩包,...
在 Tomcat 服务器中配置 SSL 加密连接是非常重要的,然而在 Tomcat 6.0.33 版本中,默认启用了 APR(APR 是通过 JNI 访问的可移植库,可以提高 Tomcat 的性能和伸缩性),这使得传统的 SSL 配置方式无法使用。...
6. `work` 目录:存放Tomcat处理JSP页面时生成的临时文件。 7. `temp` 目录:Tomcat运行时产生的临时文件存放处。 8. `docs` 目录:包含Tomcat的API文档。 要运行Tomcat,你需要确保系统已经安装了Java Development...
配置Tomcat时,主要关注的是`conf/server.xml`文件,这是Tomcat的主要配置文件,包括端口号、服务器引擎设置、连接器配置以及默认的应用部署等信息。此外,还需要设置环境变量`CATALINA_HOME`指向Tomcat的安装目录,...
拒绝访问异常处理(AccessDeniedException)_spring security例子 博客:blog.csdn.net/dsundsun
在安全方面,Tomcat提供了基本的身份验证和授权机制,可以通过`conf/tomcat-users.xml`文件定义用户和角色,然后在应用的`WEB-INF/web.xml`中设置访问控制。此外,还可以通过SSL/TLS配置来启用HTTPS,提高通信的安全...
Apache、Tomcat、mod_jk和mod_ssl是构建高效、安全的Java web应用...这种架构允许灵活扩展,例如,通过增加更多的worker来添加更多Tomcat实例,以应对高并发访问。同时,HTTPS保护了用户的隐私,防止数据被中间人攻击。
以下是如何在CentOS 7上设置Tomcat 8开机启动的详细步骤: 1. **配置Tomcat环境变量**: 首先,我们需要在Tomcat的`bin`目录下的`catalina.sh`文件中设置`JAVA_HOME`和`JRE_HOME`环境变量。打开`catalina.sh`,...
标题 "tomcat_iis_connector工具" 提到的是一个用于整合IIS(Internet Information Services)、Tomcat和Apache服务器的工具,特别是在Windows Server环境下。这个工具的主要目的是实现这些不同Web服务器之间的协同...
tomcat配置只能域名访问禁止ip访问 直接替换tomcat里面的server.xml 文件,但是里面的ip要更换你自己的ip
该版本是windows 32位的tomcat7,已对startup.bat 和shutdown.bat进行了修改,修改部分有注释,支持放到所需位置直接双击startup.bat开启服务器,只要修改端口号,无需设置环境变量,直接支持多个tomcat同时开启;...
如果日志仍然没有生成,检查`log4j2.xml`配置文件是否有误,或者Tomcat的权限设置是否正确。 总之,配置Tomcat 9使用SLF4J和Log4j2进行日志记录是一个涉及依赖管理、日志配置文件设置和Tomcat自身配置的过程。通过...
为了让系统能够全局识别Tomcat,需要设置`TOMCAT_HOME`环境变量。打开或创建`~/.bashrc`文件: ```bash nano ~/.bashrc ``` 在文件末尾添加: ```bash export TOMCAT_HOME=/opt/apache-tomcat-x.x.x export PATH=$...
<form method="post" action="j_security_check"> <input type="text" name="j_username" placeholder="Username"> <input type="password" name="j_password" placeholder="Password"> ``` ...