一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Java Web的安全验证机制的例子

时间:2016-07-07 编辑:简简单单 来源:一聚教程网

security-constraint

部署描述符中的security-constraint元素允许不通过编程就可以限制对某个资源的访问。





(1) web-resource-collection元素

web-resource-collection元素标识需要限制访问的资源子集。在web-resource-collection元素中,可以定义URL模式和HTTP方法。如果不存在HTTP方法,就将安全约束应用于所有的方法。






web-resource-name是与受保护资源相关联的名称。http-method元素可被赋予一个HTTP方法,比如GET和POST。

(2) auth-constraint元素

auth-constraint元素用于指定可以访问该资源集合的用户角色。如果没有指定auth-constraint元素,就将安全约束应用于所有角色。




(3) user-data-constraint元素

user-data-constraint元素用来显示怎样保护在客户端和Web容器之间传递的数据。




transport-guarantee元素必须具有如下的某个值:

NONE,这意味着应用不需要传输保证
INTEGRAL,意味着服务器和客户端之间的数据必须以某种方式发送,而且在传送中不能改变。
CONFIDENTIAL,这意味着传输的数据必须是加密的数据。
在大多数情况下,安全套接字层(SSL)用于INTEGRAL或CONFIDENTIAL

security-role

security-role元素指定用于安全约束中的安全角色的声明。




注意:security-constraint中的role-name和security-role是没有关系的

tomcat中,有没有设定security-role是没有关系的

在其他商业应用服务器,如Weblogic, Jboss上,通常会设定security-role,以便在security-constraint中引这些security-role

login-config

login-config元素用来指定所使用的验证方法、领域名和表单验证机制所需的特性。




login-config子元素的描述如下:

(1) auth-method指定验证方法。它的值为下面的一个:BASIC、DIGEST、FORM或 CLIENT-CERT

BASIC, HTTP规范,Base64,这种方式被认为是最不安全的认证,因为它没有提供强烈的加密措施

  
    ......  
      
        BASIC  
   
  
    ......  

DIGEST:HTTP规范,MD5,它是种比较安全的认证,它在认证时将请求数据 通过MD5的加密方式进行认证

  
    ......  
      
        DIGEST  
   
  
    ......  

CLIENT-CERT:J2EE规范,公共钥匙(PKC),这是一种基于客户端证书的认证方式,比较安全。但缺陷是在没有安全证书的客户端无法使用。

  
    ......  
      
        CLIENT-CERT  
   
  
    ......  

FORM:J2EE规范,数据完整性非常弱,没有加密,允许有定制的登陆界面


    ......
   
        FORM
       
            /login.html
            /error.jsp
       

   

    ......

(2) realm-name指定HTTP Basic验证中使用的领域名。

(3) form-login-config指定基于表单的登录中应该使用的登录页面和出错页面。如果没有使用基于表单的验证,则忽略这些元素。这个元素的定义如下,其中form-login-page用于指定显示登录页面的资源路径, form-error-page则用于指定用户登录失败时显示出错页面的资源路径。这两个页面路径都必须以a/开始,并与应用目录相对应。



值得注意的是,FORM认证的表单中,一些元素的属性必须是固定的,如:

表单的action=“j_security_check”, 表单提交方式method=”post”,用户名输入框name=”j_username”,密码输入框name=”j_password”

  
      
      
      

案例:


    Login Page
   
        Login Page
        /login.jsp
        GET
        PUT
        POST
        DELETE
   

   
        Everyone
        everyone
   

   
        NONE
   


    Everyone
    everyone


    FORM
   
        /login.jsp
        /error.html
   

热门栏目