SpringSecurity 的HttpSecurity,WebSecurity與AuthenticationManagerBuilder區(qū)別與應(yīng)用

configure(AuthenticationManagerBuilder)

用于通過(guò)允許輕松添加AuthenticationProviders來(lái)建立身份驗(yàn)證機(jī)制:例如,以下內(nèi)容定義了具有內(nèi)置“用戶”和“管理員”登錄名的內(nèi)存中身份驗(yàn)證。

public void configure(AuthenticationManagerBuilder auth) {
    auth
        .inMemoryAuthentication()
        .withUser("user")
        .password("password")
        .roles("USER")
    .and()
        .withUser("admin")
        .password("password")
        .roles("ADMIN","USER");
}

configure(HttpSecurity)

允許基于選擇匹配在資源級(jí)別配置基于Web的安全性-例如,以下示例將以/ admin /開(kāi)頭的URL限制為具有ADMIN角色的用戶,并聲明需要使用其他任何URL成功認(rèn)證。

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/admin/**").hasRole("ADMIN")
        .anyRequest().authenticated()
}

form-login屬性詳解
form-login是spring security命名空間配置登錄相關(guān)信息的標(biāo)簽,它包含如下屬性:

  1. login-page 自定義登錄頁(yè)url,默認(rèn)為/login
  2. login-processing-url 登錄請(qǐng)求攔截的url,也就是form表單提交時(shí)指定的action
  3. default-target-url 默認(rèn)登錄成功后跳轉(zhuǎn)的url
  4. always-use-default-target 是否總是使用默認(rèn)的登錄成功后跳轉(zhuǎn)url
  5. authentication-failure-url 登錄失敗后跳轉(zhuǎn)的url
  6. username-parameter 用戶名的請(qǐng)求字段 默認(rèn)為userName
  7. password-parameter 密碼的請(qǐng)求字段 默認(rèn)為password
  8. authentication-success-handler-ref 指向一個(gè)AuthenticationSuccessHandler用于處理認(rèn)證成功的請(qǐng)求,不能和default-target-url還有always-use-default-target同時(shí)使用
  9. authentication-success-forward-url 用于authentication-failure-handler-ref
  10. authentication-failure-handler-ref 指向一個(gè)AuthenticationFailureHandler用于處理失敗的認(rèn)證請(qǐng)求
  11. authentication-failure-forward-url 用于authentication-failure-handler-ref
  12. authentication-details-source-ref 指向一個(gè)AuthenticationDetailsSource,在認(rèn)證過(guò)濾器中使用

configure(WebSecurity)

用于影響全局安全性的配置設(shè)置(忽略資源,設(shè)置調(diào)試模式,通過(guò)實(shí)現(xiàn)自定義防火墻定義拒絕請(qǐng)求)。例如,以下方法將導(dǎo)致以/ resources /開(kāi)頭的任何請(qǐng)求都被忽略,以進(jìn)行身份??驗(yàn)證。

public void configure(WebSecurity web) throws Exception {
    web
        .ignoring()
        .antMatchers("/resources/**");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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