摘要:序本文介紹下如何自定義自定義默認(rèn)情況下登陸失敗會跳轉(zhuǎn)頁面,這里自定義,同時(shí)判斷是否請求,是請求則返回,否則跳轉(zhuǎn)失敗頁面設(shè)置
序
本文介紹下如何自定義AuthenticationEntryPoint
自定義AuthenticationEntryPointpublic class UnauthorizedEntryPoint implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { if(isAjaxRequest(request)){ response.sendError(HttpServletResponse.SC_UNAUTHORIZED,authException.getMessage()); }else{ response.sendRedirect("/login"); } } public static boolean isAjaxRequest(HttpServletRequest request) { String ajaxFlag = request.getHeader("X-Requested-With"); return ajaxFlag != null && "XMLHttpRequest".equals(ajaxFlag); } }
設(shè)置UnauthorizedEntryPoint默認(rèn)情況下登陸失敗會跳轉(zhuǎn)頁面,這里自定義,同時(shí)判斷是否ajax請求,是ajax請求則返回json,否則跳轉(zhuǎn)失敗頁面
@Override protected void configure(HttpSecurity http) throws Exception { http .exceptionHandling().authenticationEntryPoint(new UnauthorizedEntryPoint()) .and() .csrf().disable() .authorizeRequests() .antMatchers("/css/**", "/js/**","/fonts/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .logoutUrl("/logout") .permitAll(); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/11298.html
摘要:但是我們最好不要在里面對他進(jìn)行處理,而是放到配置的權(quán)限異常來處理。記得配置登錄認(rèn)證前和過程中的一些請求不需要身份認(rèn)證。登錄認(rèn)證失敗不能直接拋出錯(cuò)誤,需要向前端響應(yīng)異常。 關(guān)于 Spring Security 的學(xué)習(xí)已經(jīng)告一段落了,剛開始接觸該安全框架感覺很迷茫,總覺得沒有 Shiro 靈活,到后來的深入學(xué)習(xí)和探究才發(fā)現(xiàn)它非常強(qiáng)大。簡單快速集成,基本不用寫任何代碼,拓展起來也非常靈活和強(qiáng)...
摘要:返回總共需要處理個(gè)地方,一個(gè)是異常的處理,需要兼容請求,一個(gè)是成功返回的處理,一個(gè)是失敗返回的處理。這里就是攔截,獲取提交的參數(shù),然后交給去認(rèn)證。之后就是走后續(xù)的,如果成功,則會進(jìn)行相應(yīng)的配置。動態(tài)配置權(quán)限筆記自定義 序 本文講述一下如何自定義spring security的登錄頁,網(wǎng)上給的資料大多過時(shí),而且是基于后端模板技術(shù)的,講的不是太清晰,本文給出一個(gè)采用ajax的登錄及返回的前...
摘要:所以客戶端的集成主要是單點(diǎn)登錄的集成,客戶端指定需要做安全認(rèn)證的頁面,然后的安全包檢測校驗(yàn)用戶登錄情況,并自動與登錄頁面進(jìn)行跳轉(zhuǎn)交互。提供了很多配置的方式,有,,以及其他可查官網(wǎng)。但高度自由的一如既往的,沒有提供可視化操作的界面。 前兩篇介紹了Apereo CAS以及服務(wù)器端的安裝,但還不夠完整,服務(wù)端還沒有Application真正用起來呢!這篇文章將介紹怎么用起來 集成的目的 客戶...
摘要:進(jìn)行下一項(xiàng)配置,為了區(qū)分必須加入。另起一行,以示尊重。這行代碼主要是用于驗(yàn)證,后面再說。然后跑下接口,發(fā)現(xiàn)沒問題,正常打印,說明主體也在上下文中了。說明這會上下文環(huán)境中我們主體不存在。所說以,主體數(shù)據(jù)生命周期是一次請求。 showImg(https://segmentfault.com/img/bVbtoG1?w=1600&h=900); 原來一直使用shiro做安全框架,配置起來相當(dāng)...
摘要:首先遇到的就是跨域問題,但是在攜帶請求過程中出現(xiàn)了服務(wù)端獲取不到情況。瀏覽器將請求分成兩類簡單請求和非簡單請求。而瀏覽器對這兩種請求的處理是不一樣的。 背景 在一個(gè)前后端分離開發(fā)的項(xiàng)目中,使用SpringSecurity做安全框架,用JWT來實(shí)現(xiàn)權(quán)限管理提升RESTful Api的安全性。首先遇到的就是跨域問題,但是在攜帶jwt請求過程中出現(xiàn)了服務(wù)端獲取不到j(luò)wt情況。 跨域問題 在開...
閱讀 2554·2021-11-23 09:51
閱讀 598·2019-08-30 13:59
閱讀 1902·2019-08-29 11:20
閱讀 2583·2019-08-26 13:41
閱讀 3305·2019-08-26 12:16
閱讀 791·2019-08-26 10:59
閱讀 3400·2019-08-26 10:14
閱讀 658·2019-08-23 17:21