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