Spring Security? 通過??PreAuthorize 注解可以控制用戶的權(quán)限 重寫?implements ? PermissionEvaluatorhas? 的 Permission()方法 通過 返回的結(jié)果判斷用戶是否有權(quán)限彼水,如果沒有回返回系統(tǒng) 自定義的錯誤頁面 但是我們想返回錯誤信息 所以要重新攔截 和寫一個自定義的錯誤信息
WebSecurityConfigurerAdapter? ?下的? configure? ? ?http
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
// 配置被攔截時的處理? 這個位置很關(guān)鍵
? ? ? ? .exceptionHandling()
//添加無權(quán)限時的處理
? ? ? ? .accessDeniedHandler(accessDeniedHandler)
@Component
public class MyAccessDeniedHandlerimplements AccessDeniedHandler {
@Override
? ? public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)throws IOException, ServletException {
//返回json形式的錯誤信息
? ? ? ? response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
response.getWriter().println("{\"code\":403,\"message\":\"小弟弟欢唾,你沒有權(quán)限訪問呀帆卓!\",\"data\":\"\"}");
response.getWriter().flush();
}
}
2個類的代碼就行了