您可以使用j_security_check。你所要做的就是發佈給它,它將根據你定義的領域和web.xml中的特定於應用程序的配置來處理認證。
根據您的應用程序服務器,還有一個將定義的角色(特定應用程序)鏈接到組(特定於領域)的附加步驟。
下面是一個典型的配置:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.example.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Error</servlet-name>
<servlet-class>com.example.Error</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Error</servlet-name>
<url-pattern>/Error</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>example.com</realm-name>
<form-login-config>
<form-login-page>/Login</form-login-page>
<form-error-page>/Error</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>arbitraryRoleName</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>All Pages</web-resource-name>
<url-pattern>/index.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>arbitraryRoleName</role-name>
</auth-constraint>
</security-constraint>
注意security-role
。這仍然需要鏈接到一個組中,或者您正在定義的任何內容來區分不能使用用戶頁面的用戶。
非常感謝,扎克。除了使用j_security_check之外,沒有別的辦法嗎?我知道有一個類可以使用登錄和註銷方法,但不記得它的名字。 – grem 2010-09-20 14:08:41