form based authentication

阅读Servlet规范可以看到容器支持的几种用户验证方式。这里简单试验了一下Form Based Authentication的用户验证方式。 

login.htm 

<form method="post" action="j_security_check">

      Username: <input type="text" name="j_username"><br />
      Password: <input type="password" name="j_password"><br />
   <br />

      <input type="submit" value="Login">
      <input type="reset" value="Reset">

    </form>

其中,j_username,j_password,j_security_check是必需的。

 

在web.xml中完成授权、资源配置

web.xml 
<security-constraint>
<web-resource-collection>
<web-resource-name>web Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.htm</form-login-page>
<form-error-page>/login.htm?reason=1</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>The tomcat role</description>
<role-name>admin</role-name>
</security-role>

security-constraint:定义访问受限制的web资源。

 

login-config:配置用户自定义的登录界面,

如果不配置会使用服务器提供的登录界面。

 

security-role:服务器可访问应用的角色

 对于web应用来说, j_security_check 是一个看起来比较奇怪的action,用户不需要做j_security_check相关的任何定义。它被web服务器解释和使用。

使用form based anthentication时,一个让人困惑的事情是我们好像不能直接访问login.htm. 因为我们直接访问它时,服务器不知道我们想访问什么资源,这样它就一直给我们展示login.htm. 因此需要我们直接访问想要访问的其他web资源即可。 

 在tomcat中,user定义在 ${Tomcat_home}/conf/tomcat-users.xml文件中。

 编写logout时,执行如下语句即可: 

request.getSession.invalidate();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值