,本篇主要内容:请求拦截及自定义登录页面。,上一篇:《Spring Security权限控制系列(一)》,默认项目中引入Spring Security后会拦截所有的请求,这其中包括了静态资源,这肯定不是我们希望的,接下来我们看如何进行资源自定义的拦截。,
,由于静态资源默认访问路径是/**,这里为了区分静态资源与Controller给静态资源加一个前缀。,先将Spring Security从项目中移除,然后进行访问。分别访问index.js和index.html。,
,都能正常访问,接下来将Spring Security加到项目中后,再进行访问会发现之前还能访问的现在直接跳转到了登录页面。,
,自定义配置设置路径方向规则。,再次访问静态资源,这时候就能正常访问了,没有跳转到登录页面,在访问Controller接口 GET /demos/home运行结果。,
,发现静态资源能访问,同时我们的Controller也能访问。,
,以上配置后以/resources前缀的请求都会方向,其它任意的请求都会进行拦截跳转到登录页面。,注意:上面的 ① ② 如果顺序进行颠倒后服务启动会报错。报错信息如下。,不能在anyRequest之后配置antMatchers。,定义2个Controller。,我们期望/demos/**接口访问必须拥有USERS权限,/api/**接口访问必须拥有ADMIN权限, 配置如下:,分别访问/demos/home 和 /api/1接口。,通过guest/123456登录后,该接口之间返回了403的状态错误(读取403.html)。,
,我的项目中在static/error下新建了403.html错误页面,
,/api/**接口访问正常,接下来我们在配置一个用于USERS权限的用户。,通过test用户访问/demos/home接口登录后能正常访问。,在很多情况下我们期望只要用户用于任意其中一个权限就认定可以访问该资源,如何配置?,通过上面的配置即可满足只要拥有任意一个权限就可以放行。,多个URI具有相同的权限。,对请求的Method控制。,在/resources/templates/下新建login.html页面。,这里省去无关紧要的东西。,测试:,
,总结:
© 版权声明
文章版权归作者所有,未经允许请勿转载。