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>
追記の必要があればすぐに対応いたします。
まだあまり慣れていないので伝わりにくい点などあるかと思いますがよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー