成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring security自定義AuthenticationEntryPoint

趙春朋 / 2693人閱讀

摘要:序本文介紹下如何自定義自定義默認(rèn)情況下登陸失敗會(huì)跳轉(zhuǎn)頁(yè)面,這里自定義,同時(shí)判斷是否請(qǐng)求,是請(qǐng)求則返回,否則跳轉(zhuǎn)失敗頁(yè)面設(shè)置

本文介紹下如何自定義AuthenticationEntryPoint

自定義AuthenticationEntryPoint
public 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);
    }
}

默認(rèn)情況下登陸失敗會(huì)跳轉(zhuǎn)頁(yè)面,這里自定義,同時(shí)判斷是否ajax請(qǐng)求,是ajax請(qǐng)求則返回json,否則跳轉(zhuǎn)失敗頁(yè)面

設(shè)置UnauthorizedEntryPoint
@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

相關(guān)文章

  • Spring Security 進(jìn)階-細(xì)節(jié)總結(jié)

    摘要:但是我們最好不要在里面對(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)...

    LinkedME2016 評(píng)論0 收藏0
  • spring security ajax登錄及返回

    摘要:返回總共需要處理個(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的登錄及返回的前...

    ideaa 評(píng)論0 收藏0
  • 統(tǒng)一認(rèn)證 - Apereo CAS 客戶端的集成以及小結(jié)

    摘要:所以客戶端的集成主要是單點(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) 集成的目的 客戶...

    AbnerMing 評(píng)論0 收藏0
  • SpringBoot+SpringSecurity+jwt整合及初體驗(yàn)

    摘要:進(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)...

    dackel 評(píng)論0 收藏0
  • 使用Spring Security中遇到的Preflight請(qǐng)求和跨域的問(wèn)題

    摘要:首先遇到的就是跨域問(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)...

    shengguo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<