web安全控制

1,身份验证

身份验证通常采用用户名和密码来核实用户身份

●有如下几种验证手段:

●BASIC-由Web浏览器向用户索取用户名和密码并送达服务端

●DIGEST-存放在服务端的密码采用某种算法进行了加密

●FORM-由服务端提供一个登录页面供浏览器进行登录

●CLIENT-CERT–Web容器采用SecureSocketLayer(SSL)

来验证用户身份

2,授权

授权是按照角色分离Web资源的一个过程

●需要在Web容器中定义一个安全域

●Web容器使用相关的安全域机制来验证用户角色

●定义授权需要如下过程:

●定义Web资源集合

●定义用户角色

●映射Web资源集合与角色

●定义角色中的用户

3,web资源集合的控制,配置web.xml

<web-resource-collection>
<web-resource-name>League Admin</web-resource-name>
<description>
Resources accessible only to administrators.
</description>
<url-pattern>/admin/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>

4,定义安全角色,安全角色是指可以访问某个web资源集合的角色

<web-resource-collection>
<web-resource-name>League Admin</web-resource-name>
<description>
Resources accessible only to administrators.
</description>
<url-pattern>/admin/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
<auth-constraint>
<role-name>administrator</role-name>
</auth-constraint>
</web-resource-collection>

其中auth-constraint中的role-name代表的是访问资源的角色名

安全角色需要单独进行定义

<security-role>
<description>user role.</description>
<role-name>administrator</role-name>
</security-role>

5,定义安全域

安全域是一个验证用户名与密码、匹配用户与角色的软件模块

每一个Web容器都有自己特定的安全域定义方式,常见的安全域定义有:

●文件安全域(用户身份与角色定义在文件中)

●数据库安全域(用户身份与角色定义在数据库中)

●LDAP安全域

常见验证方式:BASIC、DIGEST、FORM、CLIENT-CERT

BASIC方式配置

<login-config>

<auth-method>BASIC</auth-method>

</login-config>

FORM验证方式配置

<login-config>

<auth-method>FORM</auth-method>

<form-login-config>

<form-login-page>/login/form.html</form-login-page>

<form-error-page>/login/error.html</form-error-page>

</form-login-config>

</login-config>

相关推荐