16.Spring Security應(yīng)用詳解-自定義認(rèn)證-自定義登錄頁面

自定義認(rèn)證

  • Spring Security提供了非常好的認(rèn)證擴(kuò)展方法,比如:快速上手中將用戶信息存儲到內(nèi)存中,實(shí)際開發(fā)中用戶信息通常在數(shù)據(jù)庫,Spring Security可以實(shí)現(xiàn)從數(shù)據(jù)庫讀取用戶信息,Spring Security還支持多種授權(quán)方法。

自定義登錄頁面

  • 在快速上手中,你可能會想知道登錄頁面從哪里來的?因?yàn)槲覀儾]有提供任何的HTML或JSP文件。Spring Security的默認(rèn)配置沒有明確設(shè)定一個登錄頁面的URL,因此Spring Security會根據(jù)啟用的功能自動生成一個登錄頁面URL,并使用默認(rèn)URL處理登錄的提交內(nèi)容,登錄后跳轉(zhuǎn)的到默認(rèn)URL等等。盡管自動生成的登錄頁面很方便快速啟動和運(yùn)行,但大多數(shù)應(yīng)用程序都希望定義自己的登錄頁面。
認(rèn)證頁面
  • 將security-springmvc工程的login.jsp拷貝到security-springboot下,目錄保持一致。

配置認(rèn)證頁面

  • 在WebConfig.java中配置認(rèn)證頁面地址:
/**
 * 默認(rèn)Url根路徑跳轉(zhuǎn)到/login,此url為spring security提供
 * @param registry
 */
public void addViewControllers(ViewControllerRegistry registry){
    registry.addViewController("/").setViewName("redirect:/login-view");
    registry.addViewController("/login-view").setViewName("login");
}

安全配置

  • 在WebSecurityConfig中配置表章登錄信息:
//安全攔截機(jī)制(最重要)
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable()
            .authorizeRequests()
            .antMatchers("/r/r1").hasAnyAuthority("p1")
            .antMatchers("/r/r2").hasAnyAuthority("p2")
            .antMatchers("/r/**").authenticated()//所有/r/**的請求必須認(rèn)證通過
            .anyRequest().permitAll()//除了/r/**,其他的請求可以訪問
            .and()
            .formLogin()//允許表單登錄
            .loginPage("/login-view")//登錄頁面
            .loginProcessingUrl("/login")//登錄地址
            .successForwardUrl("/login-success");//自定義登錄成功的頁面地址
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容