J2EE安全策略:为tomcat页面设置访问权限(j_security_check)

一、琅序

  项目中有用到Tomcat登录验证功能,一下内容来源于网络,谢谢原作者的分享。

  原文地址:http://www.blogjava.net/asktalk/archive/2005/07/23/8221.html

二、为tomcat页面设置访问权限

  在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>
时间: 2024-10-23 02:02:07

J2EE安全策略:为tomcat页面设置访问权限(j_security_check)的相关文章

[WebServer] Tomcat 配置访问限制:访问白名单和访问黑名单

前言: 昨天配置了 Tomcat 服务器运行 PHP 的环境,但是通过观察 Tomcat 这几天的日志发现,有很多莫名其妙的 IP 访问主机下莫名其妙的地址,如:/80./testproxy.php./cache/global/img/gs.gif.CONNECT check.best-proxies.ru:80 等等,后来通过搜索这些访问 IP 得知是进行端口扫描的地址,为了防止这些 IP 的扫描,进一步保证服务器的安全和稳定,可以通过配置 Tomcat 的 server.xml 限制一些 I

【J2EE】Struts2+Tomcat开发环境部署,“Hello World”的实现

1.在官网下载Struts2的开发包 下载链接如下: http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/struts-2.3.16.3-all.zip?n=struts-2.3.16.3-all.zip http://mirrors.cnnic.cn/apache//struts/documentation/struts-2.3.16.3-docs.zip http://mirrors.cnnic.c

Apache Solr 访问权限控制

Current state of affairs SSL support was added in version 4.2 (SolrCloud v4.7). Protection of Zookeeper content through ACLs was added in version 5.0 Authentication and Authorization plugin support was added in 5.2 (SolrCloud only) Basic Auth & Kerbe

【转】Apache Solr 访问权限控制

本文转自:http://www.cnblogs.com/ibook360/archive/2011/11/07/2239247.html 在Tomcat6增加 Solr的访问权限方法如下: 编辑tomcat6/Catalina/localhost/solr.xml <Context docBase="/var/solr/solr.war" debug="0" privileged="true" allowLinking="true

Windows远程桌面IP地址控制访问权限

Windows远程桌面IP地址控制访问权限 1.           工作组环境 在工作组环境中,因为没有组策略服务,所以只有打开"控制台",添加"组策略对象编辑器",进行"组策略"设置. 1)  点击"开始"――"运行"――"cmd",输入"mmc",打开"控制台". 2)  点击"文件"菜单――"添加/删除管理单元

论Java访问权限控制的重要性

人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说"钱乃身外之物,生不带来死不带去",但我们又都知道"有钱能使鬼推磨". 除去美色和金钱,我认为还有一个,就是读者的认可--"二哥,你的文章真的很棒,我特别喜欢.希望能多多更新Java基础知识,真的是受益良多,就好像是在读王小波的散文,但又学了编程!"--你说,收到读者这样暖暖的评语,还需要美色和金钱?"两者

如何在 Linux 中配置 sudo 访问权限

Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为. 如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限.因为如果他或她做了一些错误的操作,没有办法去纠正它. 为了解决这个问题,有什么方案吗? 我们可以把 sudo 权限发放给相应的用户来克服这种情况. sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限. 他们可以执行大部分的

C#的默认访问权限(转)

1.在namespace中的类.接口默认是internal类型的,也可以显示的定义为public类型,不允许是其他访问类型.2.在一个类里面,属性和方法默认是private的,可以显示的定义为public.private.protected.internal或protected internal等访问类型.3.接口中不能定义成员变量,接口中的方法默认为public的访问权限,但是不能显示的定义任何访问类型.4.抽象类中必须有一个以上的抽象方法,抽象方法可以是public.internal.pro

java 类访问权限

Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”.被其修饰的类.属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问. default:即不加任何访问修饰符,通常称为“默认访问模式“.该模式下,只允许在同一个包中进行访问. protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保