我想创建一个Spring Boot应用程序,它将作为角度/移动应用程序的后端服务提供商。当用户发出不允许他/她做的请求时,用户必须得到类似“禁止”的响应"例如。
我创建了一个@EnableWebSecurity
带注释的类,它覆盖了WebSecurityConfigurerAdapter.configure(HttpSecurity http)
方法。我尝试过以下方法:
http
.authorizeRequests()
.antMatchers("/test.txt").authenticated().and().exceptionHandling()
.accessDeniedHandler((HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) -> {
response.sendError(403, "forbidden");
});
即使这样也没有用
http
.authorizeRequests()
.antMatchers("/test.txt").authenticated()
.and().exceptionHandling().accessDeniedPage("/somepage");
我得到的是403响应html文本"此应用程序没有/ error的显式映射,因此您将此视为回退。出现意外错误(type = Forbidden,status = 403)。 访问被拒绝"
我已经用Google搜索了答案并建议创建一个@ControllerAdvice
类来捕获AccessDeniedException
,但是,首先,我已经有了@ExceptionHandler(Throwable.class)
这样的类注释方法(以捕获应用程序中的所有可能的异常)并且它也不被调用,其次,我想理解为什么我的第一个方法不起作用。谢谢!