<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                根據應用程序的類型,可能需要采用策略來在用戶操作之間存儲安全上下文。 在典型的Web應用程序中,用戶登錄一次,然后由其會話ID標識。 服務器緩存持續時間會話的主體信息。 在Spring Security中,在請求之間存儲`SecurityContext`的責任屬于`SecurityContextPersistenceFilter`,它默認將上下文存儲為HTTP請求之間的`HttpSession`屬性。 它把每個請求的安全上下文存儲在`SecurityContextHolder`,并且至關重要的是,`在請求完成時清除SecurityContextHolder`。 出于安全目的,您不應直接與`HttpSession`交互。 沒有理由這樣做 - 應該使用`SecurityContextHolder`來代替。 許多其他類型的應用程序(例如,無狀態RESTful Web服務)不使用HTTP會話,并將在每個請求上重新進行身份驗證。 但是,在鏈中包含`SecurityContextPersistenceFilter`以確保在每次請求后清除`SecurityContextHolder`仍然很重要。 >在一個會話中接收并發請求的應用程序中(瀏覽器多個ajax請求),將在線程之間共享相同的`SecurityContext`實例。 即使正在使用`ThreadLocal`,它也是從`HttpSession`為每個線程檢索的相同實例。 如果您希望臨時更改運行線程的上下文,則會產生影響。 如果您只使用`SecurityContextHolder.getContext()`,并在返回的上下文對象上調用`setAuthentication(anAuthentication)`,則`Authentication`對象將在共享同一SecurityContext實例的所有并發線程中更改。 您可以自定義`SecurityContextPersistenceFilter`的行為,以便為每個請求創建一個全新的`SecurityContext`,從而防止一個線程中的更改影響另一個線程。 或者,您可以在臨時更改上下文的位置創建新實例。 `SecurityContextHolder.createEmptyContext()`方法始終返回新的上下文實例。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看