<%@ page language="java" contentType="text/html;charset=EUC_JP" %>
<%@ page import="java.sql.*, DbcmSimpleAdaptor" %>
<html>
<head><title>ログイン</title></head>
<body bgcolor="white">
<%!
/**
* データベースに接続して、パスワード認証を行います。
* ログインOKなら真、NGなら偽を返します。
*/
private boolean checkLogin(
DbcmSimpleAdaptor adaptor, String userID, String password)
throws SQLException, ClassNotFoundException {
boolean result;
Connection con = adaptor.connect();
String sql = "SELECT PASSWORD FROM USERS WHERE USER_ID = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, userID);
ResultSet rset = ps.executeQuery();
if(! rset.next()){
result = false;
}
else{
String dbpass = rset.getString(1).toLowerCase();
result = password.toLowerCase().equals(dbpass);
}
rset.close();
con.close();
return result;
}
%>
<%
String userID = request.getParameter("user_id");
String password = request.getParameter("password");
if(userID == null){
%>
<form action="dbbean.jsp" method="post">
ユーザID:<input type="text" name="user_id"><br>
パスワード:<input type="password" name="password"><br>
<br>
<input type="submit" value="ログイン">
</form>
<%
}
else{
%>
<jsp:useBean id="adaptor" class="DbcmSimpleAdaptor" scope="session" />
<jsp:setProperty name="adaptor" property="driverSpec"
value="postgresql" />
<jsp:setProperty name="adaptor" property="hostName"
value="localhost" />
<jsp:setProperty name="adaptor" property="port"
value="5432" />
<jsp:setProperty name="adaptor" property="database"
value="udb" />
<jsp:setProperty name="adaptor" property="userName"
value="urano" />
<jsp:setProperty name="adaptor" property="password"
value="" />
<%
boolean result;
try {
if(checkLogin(adaptor, userID, password)){
%>
<h1>ログインしました。</h1>
ようこそ、<%= userID %>さん。
<%
}
else{
%>
<h1>おおっと</h1>
ログインできません。
<a href="<%= response.encodeURL("dbbean.jsp") %>">
こちら</a>
に戻って再度入力を試して下さい。
<%
}
} catch(SQLException ex){
%>
<h1>おおっと</h1>
データベース接続エラーが発生しました。<br>
<%= ex.toString() %>
<%
}
}
%>
</body></html>
|