目前分類:Spring-Security (5)

瀏覽方式: 標題列表 簡短摘要

  使用SecurityContextHolder來偷窺登入帳號密碼,手段還真是不夠文雅。Spring-Security3是有提供取得登入資訊塞到Session的實踐,不過寫起來很煩,很煩也大概不易被破解^^。Google這方面的資訊,不是缺漏,就是講述古早的版本,還有中文網站,資訊雖新,卻常出現文章一大抄的謬誤,我目前是用3.0.2版,和3.0.1、3.0.0差異何在也不知,不過至少我這方面有踹通,實踐方式和Google內容還是有些關鍵性的差異:

  第一個應該是security-context.xml的設定了:

Jemmy 發表在 痞客邦 留言(0) 人氣()

  再回頭閱讀Spring-Security3的文件,它提供一個獨立於其它Context之外(包括HTTP的Session)的運作環境:SecurityContextHolder,所以透過j_spring_security_check登入的資訊需從此處取得,可以在Action、Custom Tag或一般Java Class取得,如下:

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

Jemmy 發表在 痞客邦 留言(0) 人氣()

  使用Spring-Security3的session control,要先在web.xml做以下的設定:

<listener>

Jemmy 發表在 痞客邦 留言(0) 人氣()

  越成功的產品,越有細微的Bug,Spring3也不例外,在整合Spring-Security時(請參考Spring-Security 3初體驗),<context:include-filter>的type不管怎麼指定,都會被Spring-Security使用AspectJ語法屏蔽,下例applicationContext.xml內容紅字部份即是明明指定regex type,卻可以用aspectJ語法,而指定的regex語法不能用。

<context:component-scan base-package="com.foo" use-default-filters="false">

Jemmy 發表在 痞客邦 留言(0) 人氣()

  使用Spring Security 3來保護頁面。這篇Blog是寫得非常好的Spring-Security 3的入門飯粒。已於2010/2/19發行了3.0.2版了。

  Spring-Security已把認證授權該實作的細節隱藏得相當好,開發者可只須注重業務層次。其官方文件強調Spring-Security是以Layer(層)作為Security控管的單位。業務層次的程式是以繼承UserDetails和UserDetailsService兩大介面為主,範例裡講得蠻清楚的。這裡是對Configruation file加以補述。

Jemmy 發表在 痞客邦 留言(0) 人氣()