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)簽,它包含如下屬性:
- login-page 自定義登錄頁(yè)url,默認(rèn)為/login
- login-processing-url 登錄請(qǐng)求攔截的url,也就是form表單提交時(shí)指定的action
- default-target-url 默認(rèn)登錄成功后跳轉(zhuǎn)的url
- always-use-default-target 是否總是使用默認(rèn)的登錄成功后跳轉(zhuǎn)url
- authentication-failure-url 登錄失敗后跳轉(zhuǎn)的url
- username-parameter 用戶名的請(qǐng)求字段 默認(rèn)為userName
- password-parameter 密碼的請(qǐng)求字段 默認(rèn)為password
- authentication-success-handler-ref 指向一個(gè)AuthenticationSuccessHandler用于處理認(rèn)證成功的請(qǐng)求,不能和default-target-url還有always-use-default-target同時(shí)使用
- authentication-success-forward-url 用于authentication-failure-handler-ref
- authentication-failure-handler-ref 指向一個(gè)AuthenticationFailureHandler用于處理失敗的認(rèn)證請(qǐng)求
- authentication-failure-forward-url 用于authentication-failure-handler-ref
- 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/**");
}