我已成功配置CAS SSO服務器和客戶端。但是,我想要更改CAS的配置以使用自定義登錄頁面。我跟着this教程做出這樣的配置,它就像一個魅力。但問題是,當我輸入無效憑證(錯誤的用戶名或密碼)時,它會嘗試重定向到CAS的默認登錄頁面;但是,它應該重定向到自定義外部登錄頁面。如果您幫助我瞭解如何在輸入錯誤的證書時將CAS重定向到其他頁面,我將非常感激。
這是我casLoginView.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<script type="text/javascript">
function doAutoLogin() {
document.forms[0].submit();
}
</script>
</head>
<body onload="doAutoLogin();">
<form id="credentials" method="POST" action="https://externalsite.com/cas-server-webapp-4.0.0/login?service=<%= request.getParameter("service") %>">
<input type="hidden" name="lt" value="${loginTicket}" />
<input type="hidden" name="execution" value="${flowExecutionKey}" />
<input type="hidden" name="_eventId" value="submit" />
<input type="hidden" name="username" value="<%= request.getParameter("username") %>" />
<input type="hidden" name="password" value="<%= request.getParameter("password") %>" />
<% if ("true".equals(request.getParameter("rememberMe"))) {%>
<input type="hidden" name="rememberMe" value="true" />
<% } %>
<input type="submit" value="Submit" style="visibility: hidden;" />
</form>
</body>
這是我的外部自定義登錄頁面:
<form method="GET" action="https://externalsite.com/cas-server-webapp-4.0.0/">
<p>Username : <input type="text" name="username" /></p>
<p>Password : <input type="password" name="password" /></p>
<p>Remember me : <input type="checkbox" name="rememberMe" value="true" /></p>
<p><input type="submit" value="Login !" /></p>
<input type="hidden" name="auto" value="true" />
<input type="hidden" name="service" value="<%= request.getParameter("service") %>" />
</form>
基本上我的外部登錄頁面發送憑據到CAS登錄頁面後者自動提交。但是,如果證書不正確,CAS將重定向到默認登錄頁面而不是我的外部登錄頁面。
問候。
你可能會通過展示 – swa66
由於一些相關的代碼,吸引更多的迴應,我添加了一些相關的代碼。 – Richard