WebLogic Portal 提供了許多根據所有可用的身份驗證提供程序實(shí)現用戶(hù)登錄和身份驗證的方法。下面提供了 9 種身份驗證樣例,可幫助您更好地掌握實(shí)現身份驗證時(shí)應如何選擇。這些內容直接取自教程門(mén)戶(hù)中的樣例。
注意:此主題描述了在已經(jīng)配置 WebLogic Server 使用身份驗證提供程序之后,如何實(shí)現身份驗證。有關(guān)設置身份驗證提供程序的信息,請參閱在門(mén)戶(hù)開(kāi)發(fā)中使用多個(gè)身份驗證提供程序。
在這些樣例中,門(mén)戶(hù) Web 項目的根目錄為 <WEBLOGIC_HOME>/samples/portal/portalApp/tutorial。樣例中的路徑都相對于此根目錄。這些樣例的所有資源和配置都包括在使用 <WEBLOGIC_HOME>/samples/domains/portal/config.xml 服務(wù)器(稱(chēng)為 portalServer)的教程門(mén)戶(hù) Web 項目中。要在您自己的域和門(mén)戶(hù) Web 項目中使用這些樣例,請導入或復制樣例中使用的文件和配置。
本主題包括下列樣例:
源位置:/portlets/login/formLogin/
示例 /WEB-INF/web.xml 指定了機密傳輸保證,/portlets/login/formLogin/login_link.jsp 必須生成 HTTPS URL 才能訪(fǎng)問(wèn) redirect.jsp。redirect.jsp 只是重定向回門(mén)戶(hù)。此示例保留 HTTPS 協(xié)議,但如果只希望 HTTPS 在登錄期間保護您的用戶(hù)名/密碼,可以在 redirect.jsp 中切換回 HTTP。
注意:web.xml 中指定的 <form-login-page> URL 會(huì )有所不同,這取決于您在 WebLogic Administration Portal 中創(chuàng )建桌面時(shí)所運行的門(mén)戶(hù)是來(lái)自 WebLogic Workshop 中 .portal 文件的門(mén)戶(hù),還是從數據庫裝配的門(mén)戶(hù)。例如,在運行基于文件的門(mén)戶(hù)時(shí),如 sample.portal(在開(kāi)發(fā)過(guò)程中)時(shí),可能使用
/samplel.portal?_nfpb=true&_pageLabel=login 指定 <form-login-page> 元素。在運行裝配的門(mén)戶(hù)(在生產(chǎn)過(guò)程中)時(shí),可能使用 /appmanager/samplePortal/sampleDesktop?_nfpb=true&_pageLabel=login 指定 <form-login-page> 元素。
源位置:/portlets/login/clientCert/
下面是使用客戶(hù)端證書(shū)授權的步驟:
注意:創(chuàng )建 democlient-cert.p12 的目的是為了進(jìn)行說(shuō)明,而不是用于生產(chǎn)。如果選擇使用 openssl 生成自己的證書(shū),可以從位于 www.openssl.org 的網(wǎng)站上獲取說(shuō)明。
下列步驟用于配置 WebLogic Server,以便正確使用 SSL 和 democlient-cert。
由于基于表單的登錄示例使用 SSL,因此已經(jīng)為服務(wù)器配置了單向 SSL。如果需要為任一服務(wù)器啟用客戶(hù)端證書(shū)身份驗證,前提條件是必須配置單向 SSL(請參閱位于 http://e-docs.bea.com/wls/docs81/secmanage/ssl.html 上“Managing WebLogic Security”中的“Configuring SSL”。
完成這些步驟之后,可以訪(fǎng)問(wèn)門(mén)戶(hù)和 /portlets/login/formLogin/login_link.jsp,以便使用客戶(hù)端證書(shū)登錄到門(mén)戶(hù) Web 應用程序。有關(guān)使用登錄鏈接訪(fǎng)問(wèn)受保護資源的解釋?zhuān)垍㈤?a href="javascript:reloadTOC(‘../security/securityAuthentication.html#form‘)">基于表單的登錄示例。
源位置:/portlets/login/backingFileLogin/
此示例使用門(mén)戶(hù)個(gè)性化代碼和支持文件來(lái)登錄 (/WEB-INF/src/portlet/login/LoginBacking.java)。支持文件還重定向回門(mén)戶(hù),以便數據庫狀態(tài)不受控件狀態(tài)的影響。
源位置:/portlets/login/pageflowLogin/
此示例使用 Java 頁(yè)面流說(shuō)明如何完成多頁(yè)面用戶(hù)注冊 Portlet。此示例有四個(gè)頁(yè)面:
源位置:/portlets/login/ssoLogin/
這是在兩個(gè) Web 應用程序之間進(jìn)行單個(gè)登錄的示例。為了進(jìn)行單個(gè)登錄,兩個(gè) Web 應用程序必須在 web.xml 中具有匹配的 Cookie 名稱(chēng)條目。由于默認情況下 WebLogic 將 Cookie 名設置為相同(如果未為 Web 應用程序指定 Cookie 名),因此此行為在默認情況下應該起作用。
源位置:/portlets/login/autologin/
注意:此示例使用 Cookie,這是一種不安全的身份驗證方法。
此示例說(shuō)明如何使用 Cookie 和編碼實(shí)現自動(dòng)登錄。當您登錄并選中“自動(dòng)登錄”復選框時(shí),此示例將對您的用戶(hù)名和密碼進(jìn)行編碼。用戶(hù)名和密碼將作為 Cookie 添加到響應中,并具有一天的有效期。此后,如果您離開(kāi)并返回門(mén)戶(hù),您將會(huì )自動(dòng)登錄,在您退出瀏覽器時(shí)也是如此。如果您進(jìn)行了注銷(xiāo),將會(huì )刪除 Cookie,并且在您重新訪(fǎng)問(wèn)該門(mén)戶(hù)時(shí)將不再自動(dòng)登錄。
此示例使用支持文件 (/WEB-INF/src/portlet/login/AutoLoginBacking.java)。
源位置:/portlets/login/basicLogin/
此示例使用的原理與基于表單登錄相同。要使用基本身份驗證,只需在 web.xml 中取消基于 FORM 或 CLIENT-CERT 的身份驗證方法的注釋?zhuān)缓笫褂没旧矸蒡炞C方法即可??梢允褂么祟I(lǐng)域中的默認用戶(hù)之一(如 visitor1/password)進(jìn)行登錄。
源位置:/portlets/login/loginRequiredPortal/
此示例說(shuō)明只有在用戶(hù)身份驗證之后才能訪(fǎng)問(wèn)的門(mén)戶(hù)。要啟用此方法,只需在 web.xml 中為所有 URL 資源添加安全約束條目即可。例如:
<security-constraint> <web-resource-collection> <web-resource-name>login</web-resource-name> <description>整個(gè)門(mén)戶(hù)的安全約束</description> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <description>所有用戶(hù)</description> <role-name>AnonymousRole</role-name> </auth-constraint></security-constraint>
源位置:/portlets/login/perimeterLogin/
請參閱下列 WebLogic Server 文檔主題:
聯(lián)系客服