freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

springsecurity30中文幫助手冊(編輯修改稿)

2025-03-09 08:07 本頁面
 

【文章內(nèi)容簡介】 /**部分攔截,它沒法訪問到登錄頁面。這是一個很常見的配置錯誤,它會導致系統(tǒng)出現(xiàn)無限循環(huán)。 如果你的登錄頁面是被保護的 , Spring Security會在日志中發(fā)出一個警告 。 也可能讓所有的請求都匹配特定的模式,通過完全的安全過濾器鏈: autoconfig=39。true39。 intercepturl pattern=/css/** filters=none/ intercepturl pattern=/* filters=none/ intercepturl pattern=/** access=ROLE_USER / formlogin loginpage=39。/39。/ / 主要的是意識到這些請求會被完全忽略,對任何 Spring Security 中 web 相關(guān)的配置,或額外的屬性,比如 requireschannel,所以你會不能訪問當前用戶信息,或調(diào)用被保護方法,在請求過程中。使用 access=39。IS_AUTHENTICATED_ANONYMOUSLY39。作為一個選擇方式如果你還想要安全過濾器鏈起作用。 如果你希望使用基本認證,代替表單登錄,可以把配置改為: autoconfig=39。true39。 intercepturl pattern=/** access=ROLE_USER / basic / / 基本身份認證會被優(yōu)先用到,在用戶嘗試訪問一個受保護的資源時,用來提示用戶登錄。 在這種配置中,表單登錄依然是可用的,如果你還想用的話,比如,把一個登錄表單內(nèi)嵌到其他頁面里。 . 設置一個默認的提交登陸目標 如果在進行表單登陸之前,沒有試圖去訪問一個被保護的資源, defaulttargeturl 就會起作用 , 這是用戶登陸后會跳轉(zhuǎn)到的 URL,默認是 /。你也可以把 alwaysusedefaulttarget屬性配置成 true,這樣 用戶就會 一直 跳轉(zhuǎn) 到這一頁(無論登陸是 “ 跳轉(zhuǎn)過來的 ” 還是用戶特定進行登陸)。如果你的系統(tǒng)一直需要用戶從首頁進入,就可以使用它了,比如: intercepturl pattern=39。/*39。 filters=39。none39。/ intercepturl pattern=39。/**39。 access=39。ROLE_USER39。 / formlogin loginpage=39。/39。 defaulttargeturl=39。/39。 alwaysusedefaulttarget=39。true39。 / / . 使用其他認證提供器 現(xiàn)實中,你會需要更大型的用戶信息源,而不是寫在 application context 里的幾個名字 。多數(shù)情況下,你會想把用戶信息保存到數(shù)據(jù)庫或者是 LDAP 服務器里。 LDAP 命名空間會在 LDAP章 里詳細討論,所以我們這里不會講它。如果你自定義了一個 Spring Security 的UserDetailsService 實現(xiàn),在你的 application context 中名叫 myUserDetailsService,然后你可以使用下面的驗證。 authenticationmanager authenticationprovider userserviceref=39。myUserDetailsService39。/ /authenticationmanager 如果你想用數(shù)據(jù)庫,可以使用下面的方式 authenticationmanager authenticationprovider jdbcuserservice datasourceref=securityDataSource/ /authenticationprovider /authenticationmanager 這里的 “ securityDataSource” 就是 DataSource bean 在 application context 里的名字,它指向了包含著 Spring Security 用戶信息的表 。另外,你可以配置一個 Spring Security JdbcDaoImpl bean,使用 userserviceref 屬性指定 : authenticationmanager authenticationprovider userserviceref=39。myUserDetailsService39。/ /authenticationmanager beans:bean id=myUserDetailsService class= beans:property name=dataSource ref=dataSource/ /beans:bean 你也可以使用標準的 AuthenticationProvider 類,像下面 authenticationmanager authenticationprovider ref=39。myAuthenticationProvider39。/ /authenticationmanager 這里 myAuthenticationProvider 是你的 application context 中的一個 bean 的名字,它實現(xiàn)了 AuthenticationProvider。查看 .“ 驗證管理器和命名空間 ” 了解更多信息,AuthenticationManager 使用命名空間在 Spring Security 中是如何配置的。 . 添加一個密碼編碼器 你的密碼數(shù)據(jù)通常要使用一種散列算法進行編碼 , 使用 passwordencoder元素支持這個功能 , 使用 SHA 加密密碼,原始的認證供應器配置,看起來就像這樣: authenticationmanager authenticationprovider passwordencoder hash=sha/ userservice user name=jimi password=d7e6351eaa13189a5a3641bab846c8e8c69ba39f authorities=ROLE_USER, ROLE_ADMIN / user name=bob password=4e7421b1b8765d8f9406d87e7cc6aa784c4ab97f authorities=ROLE_USER / /userservice /authenticationprovider /authenticationmanager 在使用散列密碼時,用鹽值防止字典攻擊是個好主意, Spring Security 也支持這個功能。理想情況下,你可能想為每個用戶隨機生成一個鹽值,不過,你可以使用從UserDetailsService 讀取出來的 UserDetails 對象中的屬性。比如,使用 username 屬性,你可以這樣用: passwordencoder hash=sha saltsource userproperty=username/ /passwordencoder 你可以通過 passwordencoder 的 ref 屬性,指定一個自定義的密碼編碼器 bean。這應該包含 application context 中一個 bean 的名字,它應該是 Spring Security 的 PasswordEncoder接口的一個實例。 . 高級 web 特性 . RememberMe 認證 參考 RememberMe 章 獲得 rememberme 命名空間配置的詳細信息 。 . 添加 HTTP/HTTPS 信道安全 如果你的同時支持 HTTP 和 HTTPS 協(xié)議,然后你要求特定的 URL 只能使用 HTTPS,這時可以直接使用 intercepturl的 requireschannel 屬性: intercepturl pattern=/secure/** access=ROLE_USER requireschannel=/ intercepturl pattern=/** access=ROLE_USER requireschannel=any/ ... / 使用了這個配置以后,如果用戶通過 HTTP 嘗試訪問 /secure/**匹配的網(wǎng)址,他們會先被重定向到 HTTPS 網(wǎng)址下。 可用的選項有 , 或 any。 使用 any意味著使用HTTP 或 HTTPS 都可以。 如果你的程序使用的不是 HTTP或 HTTPS的標準端口,你可以用下面的方式指定端口對應關(guān)系: ... portmappings portmapping =9080 =9443/ /portmappings / . 會話管理 . 檢測超時 你可以配置 Spring Security 檢測失效的 session ID,并把用戶轉(zhuǎn)發(fā)到對應的 URL。這可以通過 sessionmanagement 元素配置 。 ... sessionmanagement invalidsessionurl=// / . 同步會話控制 如果你希望限制單個用戶只能登錄到你的程序一次, Spring Security 通過添加下面簡單的部分支持這個功能。首先,你需要把下面的監(jiān)聽器添加到你的 文件里,讓 Spring Security 獲得 session 生存周期事件: listener listenerclass /listenerclass /listener 然后,在你的 application context 加入如下部分: ... sessionmanagement concurrencycontrol maxsessions=1/ /sessionmanagement / 這將防止一個用戶重復登錄好幾次 , 第二次登錄會讓第一次登錄失效。通常我們更想防止第二次登錄,這時候我們可以使用 ... sessionmanagement concurrencycontrol maxsessions=1 errorifmaximumexceeded=true / /sessionmanagement / 第二次登錄將被阻止,通過 “ 注入 ” ,我們的意思是用戶會被轉(zhuǎn)發(fā)到authenticationfailureurl,如果使用了 formbased 登錄。如果第二次驗證使用了其他非內(nèi)置的機制,比如 “ rememberme” ,一個 “ 未認證 ”(402) 錯誤就會發(fā)送給客戶端。如果你希望使用一個錯誤頁面替代,你可以在 sessionmanagement 中添加sessionauthenticationerrorurl 屬性。 如果你為 formbased 登錄使用了自定義認證,你就必須特別配置同步會話控制。更多的細節(jié)可以在 會話管理章節(jié) 找到。 . 防止 Session固定攻擊 Session 固定 攻擊是一個潛在危險,當一個惡意攻擊者可以 創(chuàng)建一個 session 訪問一個網(wǎng)站的時候,然后說服另一個用戶登錄到同一個會話上(比如,發(fā)送給他們一個包含了 session標識參數(shù)的鏈接)。 Spring Security 通過在用戶登錄時,創(chuàng)建一個新 session 來防止這個問題。如果你不需要保護,或者它與其他一些需求沖突,你可以通過使用 中的sessionfixationprotection 屬性來配置它的行為,它有三個選項 ? migrateSession 創(chuàng)建一個新 session,把原來 session 中所有屬性復制到新 session中。這是默認 值。 ? none 什么也不做,繼續(xù)使用原來的 session。 ? newSession 創(chuàng)建一個新的 “ 干凈的 ”session ,不會復制 session 中的數(shù)據(jù)。 . 對 OpenID 的支持 命名空間支持 OpenID 登錄,替代普通的表單登錄,或作為一種附加功能,只需要進行簡單的修改: intercepturl pattern=/** access=ROLE_USER / openidlogin / / 你應該注冊一個 OpenID 供應器(比如 ),然后把用戶信息添加到你的內(nèi)存userservice中: user name= authorities=ROLE_USER / 你應該可以使用 網(wǎng)站登錄來進行驗證了。也可能選擇一個特定的UserDetailsService bean 來使用 OpenID,通過設置元素。查看上一節(jié) 認證提供器 獲得更多信息。請注意,上面用戶配置中我們省略了密碼屬性,因為這里的用戶數(shù)據(jù)只用來為數(shù)據(jù)讀取數(shù)據(jù)。內(nèi)部會生成一個隨機密碼,放置我們使用用戶數(shù)據(jù)時出現(xiàn)
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1