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>