前几天想着差不多也该学一套安全框架了,技术菜归菜,但好歹也得完善一下自己的知识体系不是?于是,在网上找了一套shiro教程,结果看了前几章之后已经觉得整个人都不好了。
讲解基本应用的部分倒是学得还算顺利,一到涉及到一些源码、重写某个方法、自定义某某某的时候,尤其是当作者罗列出一排陌生的类名时,我简直头大。
算了算了,还是买本书或者实在不行找一套视频慢慢啃吧,在此之前,闲不住的我果断先找了一套开源项目决定借此提升一下自己,结果发现人家居然用到了spring security、spring data jpa这些技术。
为了能啃动这套开源项目,同时也为了能快点开始下口,万般无奈之下,只好将这些技术逐一简单学习一波,今天恰好学到spring security自定义403界面,结果就是找不到我配置的路径,主要原因是我对于单体应用这一块也不是很熟,之前大部分时间都是学习分布式项目,这回突然拿了几个陌生的技术整合在一起,着实有些云里雾里。先把类贴出来:
@Configuration public class SprErrorPage implements ErrorPageRegistrar { @Override public void registerErrorPages(ErrorPageRegistry registry) { registry.addErrorPages(new ErrorPage(HttpStatus.FORBIDDEN, "/test/403")); } }
起初我天真地以为配置好的路径一定会去thymeleaf设定的根目录下找,或者从我的static目录下找,经过几次尝试发现这些想法均不成立。灵光一现,那有没有可能是访问我的controller呢?
果不其然,当403出现后,程序果然执行到了相应的controller层方法中,所以只需在该处返回自定义403界面的路径即可。
@GetMapping("/403") public String show403() { return "/error/403"; }
名字什么的,都是乱起的... ...