Tuesday, June 12, 2012

Apache Wicket Auth/Roles -- 系列文章

花了一些時間將Apache Wicket Auth/Roles專案對於驗證及授權的機制加以實作(以Wicket Example上的範例稍加修改)後,總算對於它的運作有了基礎的了解,為了方便看文,所以在這裡做了一個連結的文章,以後若有新增相關的文章,也會一併在此更新。

Apache Wicket Auth/Roles 簡介 -- Authorization (3)

本文同樣延續上一篇的範例,本文會再新增兩個頁面,這些頁面會視使用者的角色而呈現出不同的內容。也可以說,頁面的內容可以自訂允許哪些角色看到什麼內容。

新增的兩個頁面分別是AdminPanelPage.html(使用meta data授權)及AdminAnnotationPanelPage.html(使用annotation授權)。

因此,在HomePage.html也要新增兩個超連結。

Monday, June 11, 2012

Apache Wicket Auth/Roles 簡介 -- Authorization (2)

本文將延續前一篇的範例,將它的授權(authorization)應用到網頁中的某個元件,例如只有ADMIN才能看到某個Panel,其餘的使用者則無法看到!

在本文中我們會在網站中新增兩個頁面,這兩個頁面均是內部頁面(意即非bookmarkable),只是其中之一使用meta data進行授權,而另一頁則使用annotation授權。

所以,在首頁(HomePage.html)的地方,我們新增了兩個超連結,其中一個是AdminInternalPage.html(使用meta data授權);另一個是AdminInternalAnnotationPage.html(使用annotation授權):

Thursday, June 7, 2012

Apache Wicket Auth/Roles 簡介 -- Authorization (1)


本文是接續前三篇文章()而來的,主要在介紹如果使用Auth/Roles進行元件授權(authorization)的動作。

-- Authorization --



在Apache Wicket的Auth/Roles專案中,在身份認證(authentication)完成後必須要針對各項元件進行授權(authorization)的動作,以避免不具權限的使用者進入了受限的頁面。

Wednesday, June 6, 2012

Apache Wicket Auth/Roles 簡介 -- Authentication (3)

本篇文章是更為進階的身份驗證範例,使用Annotation來進行頁面的權限設定,因為如果使用前二篇文章()中的範例來設定頁面的存取權限,維護各頁面權限的工作會變得很煩瑣。

-- 體驗範例程式 --



本範例程式和先前範例程式相比,程式碼變得更為簡潔,而且需要修改的部份不多,茲分述如下:


程式碼不須變動部份:

1.SignIn.html
2.SignIn.java
3.Session.java
4.SignOut.html
5.SignOut.java

Apache Wicket Auth/Roles 簡介 -- Authentication (2)

接續上一篇文章,本文的範例則是使用Auth/Roles套件中內建的SignInPanel,來呈現登入畫面,同時它亦可設定是否要將登入資訊儲存在cookie中。

-- 體驗範例程式 --



本範例大部份程式碼都和上一篇相同,只有一小部份有稍加修改,茲表列如下:

相同的部份:
1.Application.java
2.SignOut.html
3.SignOut.java

Apache Wicket Auth/Roles 簡介 -- Authentication (1)

Apache Wicket Auth/Roles是Apache Wicket的延伸套件,它讓認證(Authentication)及授權(Authorization)變得簡單易用。

本系列文章將以Apacke Wicket Example裡的範例來進行說明,Wicket的版本為1.5x。

首先,Auth/Roles套件實作了IAuthorizationStrategy介面;當授權策略(authorization strategy)安裝在安全性設定中(WebApplication#getSecuritySettings),Wicket將會自動檢查所有元件(component)是否具備可以初始化(instaintion)或是呈現畫面(render)的權限。