2019独角兽企业重金招聘Python工程师标准>>>

参考: http://www.blogjava.net/asktalk/archive/2005/07/23/8221.html

在web应用中,对页面的访问控制通常通过程序来控制,流程为:
登录 → 设置session → 访问受限页面时检查session是否存在,如果不存在,禁止访问

对于较小型的web应用,可以通过tomcat内置的访问控制机制来实现权限控制。采用这种机制的好处是,程序中无需进行权限控制,完全通过对tomcat的配置即可完成访问控制。

实现:在用户访问受限页面时,如果用户没有登陆则自动跳转到登陆页面,只有通过登陆验证有权限的用户可以访问受限资源。

下面讲如何配置使用:

1.为了在tomcat页面设置访问权限控制,在项目的WEB-INF/web.xml文件中,进行如下设置:

  <security-constraint><!--1.被保护的资源 --><web-resource-collection><web-resource-name>testLogin</web-resource-name><url-pattern>/protected/*</url-pattern></web-resource-collection><!--2.有权限的角色 --><auth-constraint><role-name>tian</role-name></auth-constraint></security-constraint><!-- 3.登录方式 --><login-config><auth-method>FORM</auth-method><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/error.jsp</form-error-page></form-login-config></login-config>

其中,<url-pattern>中指定受保护的url,可以使用通配符*,通常对整个目录进行访问权限控制。(例子中指在protected目录下的所有文件都被保护);
<auth-constraint>中指定哪些角色可以访问<url-pattern>指定的url,在<role-name>中可以设置一个或多个角色名。(例子中角色名为tian的角色有访问权限)。

2.使用的角色名来自tomcat的配置文件${CATALINA_HOME}/conf/tomcat-users.xml。 如下所示:

<tomcat-users><role rolename="tomcat"/><role rolename="tian"/><role rolename="manager"/><user name="admin" password="admin" roles="tian,tomcat,manager" /><user name="tian" password="tian" roles="tian,manager" /></tomcat-users>

其中,<role rolename="tian"/>指角色名为tian;

<user name="admin" password="admin" roles="tian,tomcat,manager" />指通过登录名admin和密码admin登陆的用户拥有tian,tomcat,manager这3个角色的权限。

所用角色名也可以自己配置,使用Realm,可以从数据库中获取,下篇《在tomcat中使用Realm》再讲。

3.<login-config>用来设置登录方式;

<auth-method>的取值为BASIC与FORM。如果为BASIC,浏览器在需要登录时弹出一个登录窗口。如果为FORM方式,需要指定登录页面和登录失败时的提示信息显示页面。(例子中使用的登陆方式为FROM表单登陆)

其中的<form-login-page>指定登录页面url,<form-error-page>指定登录失败时的提示页面url。
登录页面中,form的action,以及其中的用户名和密码两个参数的名称,都应取固定的值。登录的后台处理程序为j_security_check;用户名和密码的参数名称分别为:j_usernamej_password
如下是登录页面(如:login.jsp)的一段示例代码:

<form  method="post" action='j_security_check' ><label >账号:</label><input name="j_username" type="text"/><br><br><label >密码:</label><input name="j_password" type="password"/><br><br><button id="j_login" type="submit" >登录</button><br></form>

而BASIC的配置如下:

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

转载于:https://my.oschina.net/u/2351298/blog/783967

tomcat安全机制j_security_check(简单版)相关推荐

  1. tomcat升级简单版

    tomcat升级简单版 理论上tomcat的升级需要在官网上重新下载之后将旧版本整个替换,并把原webapps文件夹里面的内容拷贝过来,比较麻烦. 说两种简单方式的升级,仅供参考.更新前最好做好备份, ...

  2. 008 数据结构逆向—数组(简单版)

    文章目录 前言 逆向背包数组 一维背包数组 二维背包数组 数组结构分析 总结 前言 对于游戏逆向来说,核心需求其实就只有两个 追踪游戏数据 定位游戏功能call 对于追踪游戏数据来说,单纯从一个寄存器 ...

  3. 图解Tomcat类加载机制(阿里面试题)

    Tomcat的类加载机制是违反了双亲委托原则的,对于一些未加载的非基础类(Object,String等),各个web应用自己的类加载器(WebAppClassLoader)会优先加载,加载不到时再交给 ...

  4. 课程设计——模仿网易云UI设计基础(超简单版)

    本来想把我自己做的东西放出来给你们的,但是解释起来有点难, 所以就先弄出一个简单版本,也就是可以过关的版本. 先上我的版本,如果要弄这种的可以私聊我好吧-0-. 简单版,好像花了3个小时吧.上图. 直 ...

  5. 游戏服务器设计(C#)简单版

    背景 充分利用c#中的task机制,设计高并发,无锁(针对业务逻辑)的服务器架构 gateserver 处理客户端连接.交互的服务器 永久性设计,与游戏项目无关,无需新代码维护 gameserver ...

  6. 百度Al在线语音合成(简单版)

    百度Al在线语音合成(简单版) 1.登录网址 https://ai.baidu.com/tech/speech/tts 点击跳转 2.登录百度账号并创建应用 在应用列表创建新应用:全部默认.应用名称与 ...

  7. Android简单版天气预报,显示天气预报(第二步)

    Android简单版天气预报,显示天气预报(第二步) 接着上一步的:[https://blog.csdn.net/weixin_44889138/article/details/102748057] ...

  8. 小说下载阅读器_初始简单版

    小说下载阅读器_初始简单版 相信园子里面的很多人和我一样喜欢阅读小说,下面是这几年用的比较多一点的阅读器,功能相对完整. Windows本地程序/手机 1.http://www.mybook66.co ...

  9. JavaWeb笔记(五)后端(Thymeleaf)(Tomcat类加载机制)(编写图书管理系统)

    使用Thymeleaf模板引擎 虽然JSP为我们带来了便捷,但是其缺点也是显而易见的,那么有没有一种既能实现模板,又能兼顾前后端分离的模板引擎呢? Thymeleaf(百里香叶)是一个适用于Web和独 ...

最新文章

  1. mint 15用fcitx框架安装中文谷歌输入法
  2. mini2440的时钟
  3. 中石油训练赛 - 奎奎发红包(贪心)
  4. python数据分析与基础实战_《python数据分析与挖掘实战》基础概念
  5. OpenCL 与 CUDA
  6. 我爱计算机视觉干货集锦分类汇总(2019年5月7日)
  7. electronic-wechat高分屏下的缩放修改
  8. MongoDB数据库常见问题
  9. 同余定理在算法求解中的应用
  10. onConfigurationChanged方法的使用
  11. 使用js实现移动设备访问跳转到指定目录
  12. LQR 控制学习-LQR控制 MATLAB官方教程-LQR 控制器_状态空间系统Matlab/Simulink建模分析
  13. 2021-07-26
  14. 深入解读OpenSURF中快速黑塞矩阵计算的思想——FastHessian_buildResponseLayer
  15. JSP作业提交管理系统(JSP作业管理系统)JSP学生作业管理JSP教师作业批改业提交管理系统
  16. “日不落”的大学数据库原理课程设计——机票预订信息系统
  17. 修改基于formView的MFC单文档背景颜色
  18. python flask项目结构_Flask项目结构
  19. DIB迪博数据库(2000-2018年)
  20. 马士兵java ppt_[马士兵JAVA教程课件.ppt

热门文章

  1. 64位内核开发第二讲.内核编程注意事项,以及UNICODE_STRING
  2. 两数之和,两数相加(leetcode)
  3. python函数里面,一个*是可变参数的元祖,两个*是可变参数的字典
  4. Ubuntu系统---以virtualenv方式安装Tensorflow-CPU
  5. leetcode python 011
  6. 如何让博客变得稍稍好看
  7. HtmlAgilityPack 使用
  8. C#调用SSIS包及读取DataReader目标
  9. GetWindowText和GetDlgItemText的区别
  10. 自定义repeater带分页功能的DataGrid(仿PetShop)