piaoyi's blog - Are you Javanese?

Main | Next page »

http://www.javaworld.com.tw/roller/piaoyi/date/20080731 Thursday July 31, 2008

Acegisecurity Memo-9, Login Password with PasswordEncoder(SHA,MD5...)


一堆事,雜事、正事、亂七八糟的事,不爽的事 = =,摸了許久....hmm.....繼續分享 acegi 的心得吧..

Table of Content

摘要

一般在設計權限的系統,在儲存使用者的密碼時,通常都會是存加密過後的密碼字串,而不是直接存原始的密碼進儲存庫,所以在使用者 key in 密碼登入時,我們要做的比對,應該是先把使用者 key in 的密碼加密過後,再和儲存庫中的資料做比對,才會正確的判斷。
很幸運的, acegi 已經考慮到這一段,也幫我們做好了,我們只要設定要使用的 PasswordEncoder 傳給 AuthenticationProvider 即可,acegi 會自動加密後再比對判斷。

PasswordEncoder

class 說明
org.acegisecurity.providers.encoding.PlaintextPasswordEncoder 如果 AuthenticationProvider 有傳入 SaltSource,則此加密就是原 password + "{" + aSaltSource.toString() + "}",若無 SaltSource,則即原 password。
org.acegisecurity.providers.ldap.authenticator.LdapShaPasswordEncoder 一般 LDAP 內建的加密方式,有{SHA}, {SSHA} 二種。
org.acegisecurity.providers.encoding.Md5PasswordEncoder MD5 加密演算法。
org.acegisecurity.providers.encoding.ShaPasswordEncoder SHA 加密演算法,建構子可傳入 key 長度,預設是 SHA-1 演算法。
org.acegisecurity.providers.encoding.MessageDigestPasswordEncoder Md5PasswordEncoder 和 ShaPasswordEncoder 的父類別,但可以直接使用,不過必須在建構子傳入演算法名稱。

設定方式

在設定  AuthenticationProvider 時,傳入選擇的 PasswordEncoder 實例進  passwordEncoder 參數。
<bean id="authenticationProvider"
	class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
	<property name="userDetailsService">		
		<ref bean="inMemoryDaoImpl" />
	</property>
	<property name="passwordEncoder">
		<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder"/>
	</property>
</bean>	

Sample

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

	<bean id="authenticationProvider"
		class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
		<property name="userDetailsService">		
			<ref bean="inMemoryDaoImpl" />
		</property>
		<property name="passwordEncoder">
			<bean class="org.acegisecurity.providers.encoding.ShaPasswordEncoder"/>
		</property>		
	</bean>		
	<bean id="inMemoryDaoImpl" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
		<property name="userMap">
		<!--
				admin=1234,ROLE_admin,ROLE_USER,ROLE_other
				piaoyi=1234,ROLE_admin,ROLE_USER,ROLE_other
				readonly=readonly,ROLE_USER,ROLE_readonly
				密碼加密 SHA-1 後如下
		-->
			<value>
				admin=7110eda4d09e062aa5e4a390b0a572ac0d2c0220,ROLE_admin,ROLE_USER,ROLE_other
				piaoyi=7110eda4d09e062aa5e4a390b0a572ac0d2c0220,ROLE_admin,ROLE_USER,ROLE_other
				readonly=9a27718297218c3757c365d357d13f49d0fa3065,ROLE_USER,ROLE_readonly
			</value>
		</property>
	</bean>	
</beans>

Download

  1. Download [AcegisecurityMemo9.zip]
    Contains:
    • acegi-authentication-passwordEncoder.xml

Reference

http://www.acegisecurity.org/
http://forum.springframework.org/forumdisplay.php?f=33

Navigation:

Index: Acegisecurity Memo, Table of Contents
Previous: Acegisecurity Memo-8, Login Page & Logout URL
Next:


http://www.javaworld.com.tw/roller/piaoyi/date/20080723 Wednesday July 23, 2008

卡玫基颱風之愛車的潛水之旅

7/18號颱風假咧,來給他睡到爽.......
...but...
...............我後悔有放假了...

早上8,9點,住的大夏(台中黎明路三段XX天地大樓,TVBS有報喔="=)警鈴突然響了,丫是安抓~~~
下樓去晃晃,硍~~~地下室已經淹水了,地下2F已不存在,地下1F已到膝蓋= =
丫某金麻似啥情形~~~我的愛車玩潛水去了= =

後來了解後才知道,
早上五點半左右,開始淹水,當時地下2F的水快到膝蓋,
而且是由住戶發覺的,不是管理員發現的(不知管理員在忙什麼,後門管理室的位置在車道正上方,怎沒發現大量的水從車道流入呢...)
該住戶馬上把自己的車移出,並告知管理員地下室開始淹水了,要趕快處理 (就是要快通知大家移車吧....但聽該住戶說,當時那個管理員回他說:看你咩按抓處理就按抓處理(台語))
結果好像夜班管理員把事情交辦給日班的管理員(還好有住戶還記得當時當班的人是誰,應該還有機會追,只是事實不見得流的出來吧,who knows),
最後........十幾台汽車和近百台機車全在下面沒出來....

底下是我一開始下去後早上問管理員的對話:
ME: 為何沒通知淹水快移車,
管理員: 進水很快,廣播系統壞掉,無法廣播,只能一個一個人打電話
ME: 我沒接到電話丫
管理員: 通知不及,進水太快
ME: 可以按警鈴丫...
管理員: 怕吵到沒有在地下室停車的住戶
ME: (無言......這麼緊急的事還不馬上通知或想辦法通知或堆沙包擋水減緩進水速度,只是一個一個打電話,那早上8,9點按的警鈴的是???為何而按???...真想知道你們電話通知了幾人)

再下去地下室看,往地下2F全淹了下不去,柴油全浮在水面,味道超臭,我想只要一把火就爆了吧,
抱著無奈的心情回樓上....安慰著自己,丫,是夢,是夢,再來睡吧,一切再說~~~
....
.....睡到一半.....
很大的水流瀑布聲吵醒我......
某呦夠似啥情形.................
啥....套房耐耶淹水,我住十幾樓咧 = =

靠靠靠靠靠靠,才剛靠完又要靠邊....哭...
大量的水從頂樓樓梯流下,漫延走廊,滲入房間內.....
颱風有這麼大嗎,外面不是沒在下雨.........
...
.......soga,管理室又有新活動了(不確定是不是管理員抽的),
把地下室的水抽到頂樓(詳情我也不知,反正地下室的水就是慢慢跑到頂樓了,真神...),
而排水管排水不及,沒地方去,只好從安全樓梯下來,

瞬間,室內下大雨,室外沒下雨的奇景,就在台中這棟大樓裡發生了(是X檔案丫.....快來收錄,賣給AXN播,多少賺點版稅(>_<))

再次,無言的出來擋水,全身滿是黃色的污水,只為了讓上一樓的水往下一樓去....(樓下的 sorry,我也是千百個不願意丫..)

擋擋擋,掃掃掃,終於,防波堤做了好,你要流就繼續流吧(18號中午流到19號早上,還真多= =),我要來睡了...
...睡前先來洗個澡好了,
.....硍......自來水怎麼是黃的,怎麼有土沙,台中應該自來水沒受污染丫,
......是地.....莫錯.....水塔的水抽到地下室的黃水了,因為蓄水池在地下室,所以地下室淹水連帶蓄水池受污染,
抽上去水塔的水也就XXXXXX..........所以也就............準備停水了....
.....除了高雄台南外,還沒聽到台中這次颱風有需要停水的地方,有匠倒楣嗎 = =
.......啥,夠來...電梯壞了....我住十幾樓咧.................................真的就是倒 楣 = =
附近都沒事,就這棟大樓有事.....這是天將降大任於斯人也,必先苦其心志,勞其筋骨.........嗎.........(問題我不是斯人丫丫丫 ~~~)

有太多的問題寫不完了,
感覺上管理員危機意識不夠(除了現有的,不用另外多準備幾台抽水機嗎?)與危機處理能力不足(一言難盡), 也不確定有沒有人為疏失,要求調閱 5~7 點的錄影帶看當時管理員在幹嘛,也要不到
管理員只會說,要管委會同意才能拿(不曉得以後還能不能拿的到),
但管委會目前只有一個委員,就是一個主委而已,一個聽說做十幾年的主委= = (詳情不明),
管理員也不是合法的保全公司,只是自聘的 n 個伯伯,
.............族繁不及備載.................
..............................................................


每天爬十幾樓樓梯,停水.......房東,我不行了,押金退我好修車吧 \( > < )/
唉,颱風受災戶,錢從哪裡來.....
還要籌研究所的錢.....

My friends,cash 準備好,我要來了嘿 o(‧""‧)o



往地下2F封閉了


雖然潛水是我在衝浪後準備的下一階段休閒活動,但我的愛車你怎能在我沒心理準備時,自己先跑去玩呢= =


往地下2F的樓梯消失了


水面浮滿恐怖的柴油,應該來偷抽,說不定還可以賣錢 (>_<)}}


在高達十幾樓的地方淹水了,只能自製防波堤 (我親愛的鄰居,為了你們好,把你們馬賽克了,我努力存證中)


喔喔喔,高潮了嗎,噴了好多水 ( >﹏< )


抽了四天水,終於,愛車出土了(滿是黃色的油污和泥土( ¯¯□¯¯ ))



突然覺的電視報的XX新村的地下室淹水比較幸福(雖然都慘),因為他們淹的水超乾淨,像游泳池;而我們的像糞池= =



發現汽車,可憐的鄰居....


啥,是米林....God bless you....


貼累了,太多貼不完....還有另外緊密雙排的一長串機車和各角落車子沒拍到,到現在7/23號還有幾十台沒移出送修,不知道到底放假回家的學生到現在有沒有被通知到,慘....。呼吸困難了,還是快閃為妙..





最後,我看開了,我只泡一台小摩托車;有一個哭昏的小姐,她才剛買不到一個月的新汽車,才剛租車位一二週,就....(全險應該沒有含天災吧,可憐)



Main | Next page »