質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

1813閲覧

Java Webアプリ JDBCレルムによるFORM認証の暗号化 認証エラー

KB24

総合スコア4

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/05/21 02:04

編集2022/01/12 10:55

JavaのWebアプリで認証画面を作成しております。
暗号化をしない状況では認証は成功したのですが、

●server.xmlに↓を追記
<CredentialHandler algorithm="sha-256" className="org.apache.catalina.realm.MessageDigestCredentialHandler"/>

●ログイン画面(login.jsp)を

<form method="post" action='<%= response.encodeURL("j_security_check")%>'> ↓ <form method="post" action="${fn:escapeXml('j_security_check') }"> に書き換え

●DBにユーザーパスを暗号化したデータをインサート
↓インサート文
insert into auth_users values('004307', sha2('tenma116',256));
正常にインサートされました。

上記3点を行ったところログインエラーになってしまいました。
コンソールにはエラーの表示はありません。

暗号化をしないで認証することはできているので、暗号化の方法に誤りがあるのではないかと考えております。
以下にソースコードを添付いたしますので、お気づきの点がございましたらご教示いただけると幸いです。
よろしくお願いいたします。

↓server.xmlのRealmタグ

<Realm className="org.apache.catalina.realm.LockOutRealm"> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <!-- <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>--> <Realm className="org.apache.catalina.realm.JDBCRealm" connectionName="10ma" connectionPassword="tenma116" connectionURL="jdbc:mariadb://localhost:3306/bsdb" driverName="org.mariadb.jdbc.Driver" roleNameCol="role" userCredCol="pass" userNameCol="id" userRoleTable="auth_roles" userTable="auth_users" > <CredentialHandler algorithm="sha-256" className="org.apache.catalina.realm.MessageDigestCredentialHandler"/> </Realm> </Realm>

↓login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <font size="7">B-Suppport</font><br> <font size="5">Login</font><br> <form method="post" action="${fn:escapeXml('j_security_check') }"> <table> <tr> <td>ID</td> <td> <input type="text" name="j_username"></td> </tr> <tr> <td>Pass</td> <td><input type="password" name="j_password"></td> </tr> </table> <br> <input type="submit" value="Login" name="submit"> <input type="reset" value="Reset" name="reset"> </form> </body> </html>

追加で情報が必要な場合には対応いたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2020/05/21 09:19

</Realm>が重なっていますが、tomcatの起動時にエラー出ていませんか?
KB24

2020/05/21 09:27

YT0014さんコメントをいただき有難うございます。 コードが不十分で申し訳ございません。 添付しているserver.xmlのコードを修正いたしました。 ↓ 一行上に <Realm className="org.apache.catalina.realm.LockOutRealm">を追加しました。
guest

回答1

0

参考になりそうな記事がありました。
認証パスワードのDigest化

この記事が正しければ、DBに登録するパスワードは、(tomcat home)/bin/digest.[bat/sh]を使って作成する必要があるようです。

Tomcat公式ページ

投稿2020/05/21 11:10

YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問