spring security3.x学习(5)_如何拦截用户请求
来源:互联网 发布:数据库方面的工作 编辑:程序博客网 时间:2024/05/22 17:34
我们看一下第一个运行的例子,让他跑起来:
我访问一下这个url:http://localhost:8080/JBCPPets/home.do
页面将会自动跳转到:http://localhost:8080/JBCPPets/spring_security_login
我干到很奇怪,哪里出现的spring_security_login呢?、
然后我去查看了 spring security的配置文件。
- <http auto-config="true" >
- <intercept-url pattern= "/*" access="ROLE_USER" />
- </http >
<form-login>中默认的属性中login-page和login-processing-url.咱们先来看这两个属性
所以。我们看出来了。 如果配置了form-login标签的话,登陆方面至少涉及了两个拦截,一个是"/spring_security_login"(匹配映射登陆页面)和"/j_spring_security_check"(映射匹配UsernamePasswordAuthenticationFilter的filterProcessesUrl这个属性)
当配置了auto-config="true"时,<form-login>标签将自动配置(这个好像已经说过了),然后通过拦截顺序进行依次的匹配拦截。
在这里我们只需要知道。当我有<form-login>这个标签的时候,会配置两个url拦截,如果没有登录的话,却要访问授权资源文件的话,会被拦截到登陆页面,这个登陆页面是系统自动进行匹配的、、而"/_spring_security_check"是拦截提交过来的数据用的、。。这样说可能会很枯燥、
还记得刚开始我们提到的表单么。我们来看一下他的源码就应该知道大概的流程了、
- <pre name="code" class="html"><html>
- <head>
- <title>
- Login Page
- </title>
- </head>
- <body onload='document.f.j_username.focus();'>
- <h3>
- Login with Username and Password
- </h3>
- <form name='f' action='/JBCPPets/j_spring_security_check' method='POST'>
- <table>
- <tr>
- <td>
- User:
- </td>
- <td>
- <input type='text' name='j_username' value=''>
- </td>
- </tr>
- <tr>
- <td>
- Password:
- </td>
- <td>
- <input type='password' name='j_password' />
- </td>
- </tr>
- <tr>
- <td colspan='2'>
- <input name="submit" type="submit" value="Login" />
- </td>
- </tr>
- </table>
- </form>
- </body>
- </html></pre><br><br>
ok.我们可以猜到了 j_username j_password 和j_spring_security_check都是一些特定的拦截,。 j_username主要拦截用户请求的用户名,而j_password主要拦截用户请求的密码.
呵呵、 觉得现在稍微清楚一点了。
spring security中也提供了部分的过滤器请求拦截(很可惜,我去查找spring security官方文档时,发现文档中没有提供一系列的列表),如下:
我们现在已经了解到了spring security是如何拦截用户请求的了。 归根结底还是过滤器啊。
- spring security3.x学习(5)_如何拦截用户请求
- spring security3.x学习(5)_如何拦截用户请求
- spring security3.x学习(11)_退出
- spring security3.x学习(11)_退出
- spring security3.x学习(1)_必备资料&开始学习
- spring security3.x学习(4)_认证管理的过程
- spring security3.x学习(7)_访问决策管理
- spring security3.x学习(10)_自定义的登录页面
- spring security3.x学习(15)_扩展JdbcDaoImpl。
- spring security3.x学习(21)_关于方法过滤
- spring security3.x学习(22)_关于ip的过滤器
- spring security3.x学习(3)_初探过滤器机制
- spring security3.x学习(4)_认证管理的过程
- spring security3.x学习(7)_访问决策管理
- spring security3.x学习(10)_自定义的登录页面
- spring security3.x学习(15)_扩展JdbcDaoImpl。
- spring security3.x学习(21)_关于方法过滤
- spring security3.x学习(22)_关于ip的过滤器
- spring security3.x学习(4)_认证管理的过程
- ubuntu-14.04安装JDK1.8.0_25与配置环境变量
- Android开发者必知的开发资源
- 黑马程序员——Java语言基础——07.IO流(2)File类和其他流
- HDU -2196 Computer (找出所有点的最远点,着最远点对扩展)
- spring security3.x学习(5)_如何拦截用户请求
- 导出为csv文件时的各种中文问题汇总
- 黑马程序员——Java语言基础——08.网络编程
- spring security3.x学习(6)_认证详细流程和认证异常
- 20141419
- Struts2 - Interceptor中取得ActionName、Namespace、Method
- spring security3.x学习(7)_访问决策管理
- 【剑指Offer面试编程题】题目1515:打印1到最大的N位数--九度OJ
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xm