科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件第一個Acegi 程式 - 表單網頁

第一個Acegi 程式 - 表單網頁

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要是关于第一個Acegi 程式 - 表單網頁的有关内容。

作者:良葛格 来源:CSDN 2008年2月17日

关键字: 表單網頁 Acegi Linux

  • 评论
  • 分享微博
  • 分享邮件
  • acegilogin.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Acegi 範例網頁 - 登入</title>
</head>
<body>
<h2>登入範例應用程式!</h2>
<br />
<form action="j_acegi_security_check" method="POST">
<table>
<tr>
<td>名稱:</td>
<td><input type='text' name='j_username' value=''></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type='password' name='j_password'></td>
</tr>
<tr>
<td><input name="reset" type="reset"></td>
<td><input name="submit" type="submit"></td>
</tr>
</table>
</form>
</body>
</html>

主要注意到粗體字的部份,j_acegi_security_check為 第一個Acegi 程式 - 設定文件 中authenticationProcessingFilter的filterProcessesUrl屬性所設定的名稱,而驗證時發送的使用者名稱與密碼,要以j_username與j_password請求參數送出。

如果想要在登入失敗時顯示錯誤訊息,可以檢查param.login_error是否為空,例如結合JSTL的話:
<c:if test="${not empty param.login_error}">
    <font color="red">使用者名稱或密碼錯誤,請重新登入!<BR>
    </font>
</c:if>

您也許想顯示最後一次登入失敗的使用者名稱,這個訊息是儲存在session之中,可以使用AuthenticationProcessingFilter.ACEGI_SECURITY_LAST_USERNAME_KEY作為KEY來取得這個值,例如:
<%@ page import="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter"%>

...

<input type='text' name='j_username'
    <c:if test="${not empty param.login_error}">
        value='<%= session.getAttribute(AuthenticationProcessingFilter.ACEGI_SECURITY_LAST_USERNAME_KEY) %>'
    </c:if>
>

登入成功的話,可以顯示/WEB-INF/loginsuccess.jsp
  • loginsuccess.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ page import="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登入成功</title>
</head>
<body>

<h1>歡迎 <%= session.getAttribute(AuthenticationProcessingFilter.ACEGI_SECURITY_LAST_USERNAME_KEY) %>
</h1>

</body>
</html>

接著,設置一個簡單的首頁,當使用者存取首頁時,直接轉頁至acegilogin.jsp:
  • index.jsp
  <%@ page language="java" pageEncoding="UTF-8"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=acegilogin.jsp">
</head>
<body>
<p>載入中...</p>
</body>
</html>

現在您可以啟動您的應用程式了,嘗試直接存取acegilogin.jsp並登入,關閉瀏覽器並清除快取,再嘗試直接存取/protected/下的資源,看看結果如何。

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章