web容器安全管理

26 篇文章 0 订阅

1.配置资源时,如果有个事模糊配置,一个是精确配置,先匹配精确配置的。比如一个角色admin配置了*.jsp 访问所有的jsp,一个角色user是配置了user.jsp。此时,就算用户具有admin角色,也不可以访问user.jsp。必须具有user角色才可以。

上篇文章已经说了二种配置方式,
<login-config>
  <!-- <auth-method>BASIC</auth-method> -->
  <auth-method>FORM</auth-method>
  <form-login-config>
  <form-login-page>/login1.jsp</form-login-page>
  <form-error-page>/error.jsp</form-error-page>
  </form-login-config>
  </login-config>
这二种配置方式,还要结合角色,用户在进行设置。
我们的应用程序只负责设置角色,并分配资源。具体的用户角色对应要到服务器上进行设置。下面是一个例子。定义了二种角色,admin和user
<security-role>
  <role-name>admin</role-name>
  </security-role>
  <security-role>
  <role-name>user</role-name>
  </security-role>
  <security-constraint>
  <web-resource-collection>
  <web-resource-name>Admin</web-resource-name>
  <url-pattern>*.jsp</url-pattern>
  </web-resource-collection>
  <auth-constraint>
  <role-name>admin</role-name>
  </auth-constraint>
  </security-constraint>
  <security-constraint>
  <web-resource-collection>
  <web-resource-name>User</web-resource-name>
  <url-pattern>/session.jsp</url-pattern>
  <url-pattern>/login.jsp</url-pattern>
  <http-method>GET</http-method>
  </web-resource-collection>
  <auth-constraint>
  <role-name>user</role-name>
  </auth-constraint>
  </security-constraint>
admin角色分配所有的jsp页面。user分配login和session页面。注意具有admin角色的用户是不能访问login和session的。
用户存在tomcat服务器的配置文件里tomcat-users.xml
<role rolename="admin"/>
  <role rolename="user"/>
  <user username="tomcat" password="tomcat" roles="admin,user"/>
  <user username="user" password="user" roles="user"/>
这样就不用写任何代码 在访问以上页面是,浏览器都会进行验证。
当一次验证成功之后,知道关闭浏览器此次验证都有效。要像切换用户登录,必须关闭浏览器。
验证的原理:初次请求受保护的资源时,容器会检查是否包括Authorization表头,如果没有的话,则容器会进行响应401状态码与消息,以及www-authenticate表头给浏览器
就会要求用户输入名称和密码。
用户输入密码后,浏览器会将名称,面貌放在authoriztion表头中送出、容器会检查,是否包含authorization表头以及用户名密码是否正确。如果正确,则将数据发送给浏览器。
之后每次请求,都会包含那个表头,所以登陆有效期持续到关闭浏览器为止。
上面配置的http-method  默认情况下是所有的请求方式。当配置了这个之后只有配置了的请求方式才可以通过验证。比如上面的配置,如果通过post请求,就算用户名密码正确也请求不到数据。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值