您可以使用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