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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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コンテナです。

Apache Tomcat

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

Q&A

解決済

1回答

2020閲覧

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コンテナです。

Apache Tomcat

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

0グッド

0クリップ

投稿2020/05/18 05:42

JavaでWebアプリ作成を行なっております。(プログラミング経験2ヶ月です)
JDBCレルムによるFORM認証をする為、
eclipseで「web.xml」「server.xml」を作成し、実行しましたが
認証エラーが発生してしまいます。

●コンソールには「重大: 認証実行中の例外です」と表示されました。

●認証の流れとしましては、
login.jspでIDとPassを入力

合っていればplayerList.jspへ遷移 としたいです。

●認証に用いるテーブルは以下の通りです。

①auth_usersテーブル
id varchar(64) not null primary key = 004306
pass varchar(64) not null = tenma116

②auth_rolesテーブル
id varchar(64) not null primary key = 004306
role varchar(20) not null = mamba

Webサイトや参考書を見て作成を進めていたのですが、解決ができませんでした。
何かお気づきの点などございましたらご教示いただけると幸いです。
よろしくお願いいたします。

以下web.xmlとserver.xml、login.jspを添付いたします。
↓web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>Bsupport</display-name> <welcome-file-list> <welcome-file>/playerList.jsp</welcome-file> </welcome-file-list> <error-page> <error-code>403</error-code> <location>/login_err.jsp</location> </error-page> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login.jsp</form-login-page> <form-error-page>/login_err.jsp</form-error-page> </form-login-config> </login-config> <security-role> <role-name>mamba</role-name> </security-role> <!-- ■認証をかけるURL  ○/main.html[メイン画面]※「/」も同じURLに今回は設定  ○/basic/~[基本]  ○/object/~[オブジェクト活用編] ■認証をかけないURL  ○/auth/~[認証関連] --> <security-constraint> <web-resource-collection> <web-resource-name>Authentication of FormAuth</web-resource-name> <url-pattern>/playerList.jsp</url-pattern> <url-pattern>/playerListServlet</url-pattern> </web-resource-collection> <auth-constraint> <role-name>mamba</role-name> </auth-constraint> </security-constraint> <session-config> </session-config> </web-app>

↓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.gjt.mm.mysql.Driver" roleNameCol="role" userCredCol="pass" userNameCol="id" userRoleTable="auth_roles" userTable="auth_users" /> </Realm>

↓login.jsp

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='<%= response.encodeURL("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ページで確認できます。

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

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

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

退会済みユーザー

退会済みユーザー

2020/05/20 06:09

おそらく ClassNotFound
YT0014

2020/05/20 07:04

JDBCのjarファイルは、どこに保存してありますか? アプリでなく、tomcat本体が使うので、tomcat共用のフォルダにないと、読んでくれない可能性があります。
KB24

2020/05/21 01:07

YT0014 さん jarはtomcat共用ファイルに保存されています! 暗号化しない状態で一先ず認証することができました。 ご協力いただき有難うございました。
guest

回答1

0

自己解決

一先ず暗号化をしない状態での認証はクリアすることができました。
原因は認証をかけるURLの指定と実行方法に誤りがあったためでした。
今後は暗号化して認証をしてみます。
コメントをいただきましたasahina1979さん、YT0014さん
有難うございました。

投稿2020/05/21 01:03

KB24

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問