web.xml中security-constraint安全认证标签说明

在做web项目时由于想给webRoot下的jsp文件进行安全保护,控制不允许直接对jsp的访问,于是找到了tomcat的安全认证机制,只需要在web.xml中进行一定的配置即可,非常方便。

1.因为使用了SpringMVC,这里先给出SpringMVC配置文件中的视图解析器配置


        
        
        
        
        
        


2.然后去配置security-constraint,因为tomcat安全认证有四种类型,我这里使用了BASIC


        interceptor-jsp
        
            JSPs
            /views/resource/*
        
        
    
    
    
    
        BASIC
    




下面是四种类型的安全认证的介绍:

 

  
    
    
        BASIC
    
    
    
        DIGEST
    
    
    
        CLIENT-CERT
    
    
    
        FORM
        
            /login.html
            /error.jsp
        
    

3.主要的目录结构

web.xml中security-constraint安全认证标签说明_第1张图片
对resource文件夹下的文件进行了安全保护,test.jsp通过后台Controller跳转,jsResource.jsp直接访问,结果如下

4.运行结果

web.xml中security-constraint安全认证标签说明_第2张图片

web.xml中security-constraint安全认证标签说明_第3张图片

详细解释:

1.security-constraint元素

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

  
    default  
      
        all files  
        /*  
      
      
        admin  
      
      
        NONE  
      
  

 (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元素,就将安全约束应用于所有角色。

        role-name元素包含安全角色的名称。

(3) user-data-constraint元素

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

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

        ● NONE,这意味着应用不需要传输保证。

        ● INTEGRAL,意味着服务器和客户端之间的数据必须以某种方式发送,而且在传送中不能改变。

        ● CONFIDENTIAL,这意味着传输的数据必须是加密的数据。

       在大多数情况下,安全套接字层(SSL)用于INTEGRAL或CONFIDENTIAL。

2.login-config元素

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

    FORM

    appTest

   

        /login.jsp

        /login_failed.jsp

   

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

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

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

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

3.security-role元素

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

    admin

    admin

     
       
  baseporject     
       
   baseproject     
   *.jsp     
   *.do     
   GET     
   PUT     
   HEAD     
   TRACE     
   POST     
   DELETE     
   OPTIONS     
       
       
        
   baseproject     
   All Role     
       
       
   NONE     
       
     
Xml代码     
  
      
  FORM      
        
   /login.html      
   /error.html      
        
      
      
  All Role      
      

 自己项目采用:

  
          
            testxiangmu  
            /ssl/*  
          
          
            CONFIDENTIAL  
          
      

 

你可能感兴趣的:(Spring,web,安全认证,标签,spring)