我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > Struts 2应用程序的安全配置
总共48086条微博

动态微博

查看: 1739|回复: 0

Struts 2应用程序的安全配置

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2016-09-09 10:56:03 |只看该作者 |倒序浏览
    安全性是Web应用程序开发工作中最关键的问题之一。在基于servlet的应用程序里,保护应用程序资源的办法有两种:一是对应用程序进行配置(web.xml),二是使用java代码硬编码到程序中。
    安全性是Web应用程序开发工作中最关键的问题之一。在基于servlet的应用程序里,保护应用程序资源的办法有两种:一是对应用程序进行配置(web.xml),二是使用Java代码硬编码到程序中。前一种方法使用配置文件,该方法很灵活,这是因为通过使用配置文件,无需改写任何代码就可以改变安全策略,是一种常见的手段。而struts 2是基于servlet技术的,所以Struts 2的安全策略也可以使用配置文件进行灵活的配置。
    配置安全策略时,有两个概念需要清楚的区分 ,用户和角色,简单的说用户为使用计算机的人,可以是个人或组织。角色是一个抽象的概念,泛指职务或者权限。例如,张三,李四,王五三个人,有职员、主管和经理三个职务(权限),张三是用户,张三可以是主管职务,代表张三这个用户含有主管的权利。
    不同的servlet容器所提供的用户和角色管理机制是不相同的。我使用的是Tomcat服务器,它提供的用户和角色管理机制文件是在其安装目录下的conf目录中的tomcat-users.xml文件,可以在这个文件里完成对用户和角色的编辑。例如:
    这个文件定义了2个角色(tomcat和role1)和3名用户(tomcat、both和role1)。你可以在tomcat-users.xml文件里定义任意多个用户和角色。
    使用Struts 2保护应用程序的资源
    Struts 2应用程序的安全策略是通过部署web.xml文件中的security-constraint元素实现的,该元素的语法定义:
    该语法说明了,security-constraint元素可以有一个可选的display-name子元素,至少一个web-resource-collection子元素,一个可选的auth-constraint子元素和一个可选的user-data-constraint子元素。
    web-resource-collection子元素是用来列出打算保护的Web资源,具体的做法是为这些资源设置URL限制,它是通过设置web-resource-collection元素包含的子元素实现的:
    ◆ web-resource-name:是与受保护资源相关联的名称。该子元素为必须元素。
    ◆ description:对给定资源的描述。这个子元素为可选元素。
    ◆ url-pattern:用来设置URL表达式,与这个URL表达式相匹配的URL地址指向的资源将受到保护。该子元素为至少有一个,为必须元素。
    ◆ http-method:用来表明哪些HTTP方法将受到限制,例如设置为GET那么所有的GET请求就将受到限制。该元素为可选元素。
    auth-constraint元素用于指定可以访问该资源用户角色集合。如果没有指定auth-constraint元素,就将安全约束应用于所有角色。它包含下面几个子元素:
    ◆ description:描述。该元素是可选元素。
    ◆ role-name:可以访问保护资源的用户角色。该元素可以有多个。
    ◆ user-data-constraint元素用来设置怎样保护在客户端和Web容器之间传递的数据。
    ◆ description: 描述。可选元素。
    ◆ transport-guarantee :该元素有以下几个值
    1. NONE,这意味着应用不需要传输保证。
    2. INTEGRAL,意味着服务器和客户端之间的数据必须以某种方式发送,而且在传送中数据不能被篡改。
    3. CONFIDENTIAL,这意味着传输的数据必须加密。
    配置完毕security-constraint元素的基本信息,大致为下面的格式:
    Admin Arew *.action myeclipseWeb
    这个security-constraint元素的效果为:只要与表达式"*.action"匹配的请求不是来自拥有"myeclipseWeb"权限的用户,Web容器就会阻断它。在这里还可以使用http-method元素,阻断特定方法的请求,因为没有使用会阻断所有方法提交的请求。
    设置完安全策略后,还需要设置让用户有机会提供证明,证明自己有权限访问这个受限资源的登陆方法。允许使用的登陆方法使用login-config元素设置,下面为login-config元素的语法定义


    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表