Spring Security 2.0 有哪些新特性?

工程 | Ben Alex | 2007 年 12 月 06 日 | ...

今天我在部落格圈閒逛,偶然看到了我讀過的最短的 部落格文章 之一。幾乎整篇文章的內容是:“每次你使用 Acegi,就會有一隻小精靈死去。可悲的是,確實沒有什麼更好的東西可以用……”

透過我們的 社群論壇開發者 郵件列表JIRA使用者 大會 BOFs培訓支援諮詢團隊部落格,我們收到了大量的社群反饋。毫無疑問,許多人一直在尋求改進 Spring Security(以前稱為 Acegi)的配置格式,並且我們已經投入了大量時間來實現這一目標。

由於我下週將在 Spring Experience 會議上發表演講,Spring Security 2.0.0 M1 實現了極其簡化的配置。您現在可以透過以下三個步驟將 Spring Security 新增到您的應用程式中:

  1. 將所需的 JAR 新增到類路徑中。Maven 2 使用者只需在 POM 中指定一個依賴項即可,因為我們使用 Maven 進行構建。
  2. 在 web.xml 中新增一個過濾器及其相應的對映。
  3. 在 Spring 容器配置檔案中新增幾個元素。
將過濾器新增到 web.xml 需要以下程式碼:

<filter>
    <filter-name>_filterChainProxy</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>_filterChainProxy</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

第三步也是最後一步,您需要將新的 Spring Security 2 名稱空間新增到現有配置檔案中,或者建立一個包含安全配置的新 XML 檔案。對於許多使用者來說,該檔案將非常簡短,看起來會像這樣:



<beans:beans namespace declarations>
    <annotation-driven />

    <http auto-config="true">
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBER" />
    </http>

    <repository>
        <user-service hash="md5:hex">
            <user name="rod" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR,ROLE_USER" />
        </user-service>
    </repository>
</beans:beans>

上述配置可以為您的 Web 應用程式可靠地提供以下功能:

  • 基於表單的登入
  • 登出處理器
  • 自動生成登入頁面
  • BASIC 身份驗證支援(非常適合遠端協議和 Web 服務)
  • 透過 Cookie 支援“記住我”功能
  • 匿名身份驗證(因此所有匿名使用者都有使用者名稱和角色)
  • 與基於資料庫的使用者儲存整合(您也可以在 XML 中使用 `` 指定它們)
  • 自動強制執行 Spring 管理物件上的 `@Secured` 註釋
  • Servlet API 整合(即 `HttpServletRequest.isUserInRole(String)` 和 `HttpServletRequest.getPrincipal()`)
  • 需要登入才能使用應用程式的任何部分
因此,`` 語句透過單個元素為標準 Web 應用程式提供了大部分所需功能。當然,您可以微調各個設定,例如指定不同的域名稱(``)、自定義登入頁面詳細資訊(``)或切換到更高階的“記住我”令牌儲存(``)。

包含名稱空間宣告的格式,上述配置檔案大約有 16 行。舊的配置樣式將需要大約 120 行 XML 來實現可比的功能。

儘管配置的改進非常可觀,但 Spring Security 2.0.0 M1 還包含其他功能!例如,您現在可以選擇將“記住我”令牌儲存在資料庫中,這提供了增強的安全性。我們還支援分層角色,這是一種強大的授權別名策略。此外,還有備受期待的使用者管理 API、NTLM 支援、portlet 整合等等。

如果您想了解更多關於 Spring Security 2 的資訊,請親臨 The Spring Experience 體驗。有三個會議將涵蓋 Spring Security 2,包括一個介紹、關於新功能和改進的介紹,以及如何使用新的portlet 安全整合。對於那些無法參加的人來說,您將在下週晚些時候下載第一個里程碑版本。

希望這些增強功能能夠節省一些“仙女”(指開發者)。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有