- - PR -
認証について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-05 18:46
現在Basic認証の画面をつくっているのですが、どうもうまくいかなくて困っています。
流れとしてはユーザIDとPASSを取得して、それでコネクションを確立できるかということで判断させています。 エラーログをみてもさっぱりわからずあせっています。 早急に作らなくてはならないものですので; 是非みなさんのお力を貸してください。 環境はApache tomcat4.1.31です。 下はエラーログおよびソースです。 ↓↓エラーログ↓↓ Error compiling file: /usr/local/tomcat/work/Standalone/localhost/Kgu_java/ninsyou_jsp.java [javac] Compiling 1 source file /usr/local/tomcat/work/Standalone/localhost/Kgu_java/ninsyou_jsp.java:50: cannot resolve symbol symbol : method get_url () location: class j_com.Ora_Para String Web_home = para.get_url(); ^ /usr/local/tomcat/work/Standalone/localhost/Kgu_java/ninsyou_jsp.java:91: cannot resolve symbol symbol : method get_url () location: class j_com.Ora_Para String Web_Home = para.get_url(); ^ 2 errors Info: Compile: javaFileName=/usr/local/tomcat/work/Standalone/localhost/Kgu_java/ninsyou_jsp.java classpath=/home/httpd/html/Kgu_java/WEB-INF/classes/:/home/httpd/html/Kgu_java/WEB-INF/classes/:/usr/local/tomcat/shared/classes/:/usr/local/tomcat/common/classes/:/usr/local/tomcat/common/endorsed/xercesImpl.jar:/usr/local/tomcat/common/endorsed/xmlParserAPIs.jar:/usr/local/tomcat/common/lib/activation.jar:/usr/local/tomcat/common/lib/ant-launcher.jar:/usr/local/tomcat/common/lib/ant.jar:/usr/local/tomcat/common/lib/commons-collections.jar:/usr/local/tomcat/common/lib/commons-dbcp-1.1.jar:/usr/local/tomcat/common/lib/commons-logging-api.jar:/usr/local/tomcat/common/lib/commons-pool-1.1.jar:/usr/local/tomcat/common/lib/jasper-compiler.jar:/usr/local/tomcat/common/lib/jasper-runtime.jar:/usr/local/tomcat/common/lib/jdbc2_0-stdext.jar:/usr/local/tomcat/common/lib/jndi.jar:/usr/local/tomcat/common/lib/jta.jar:/usr/local/tomcat/common/lib/mail.jar:/usr/local/tomcat/common/lib/naming-common.jar:/usr/local/tomcat/common/lib/naming-factory.jar:/usr/local/tomcat/common/lib/naming-resources.jar:/usr/local/tomcat/common/lib/servlet.jar:/usr/local/tomcat/common/lib/classes12.jar cp=/home/httpd/html/Kgu_java/WEB-INF/classes cp=/home/httpd/html/Kgu_java/WEB-INF/classes cp=/usr/local/tomcat/shared/classes cp=/usr/local/tomcat/common/classes cp=/usr/local/tomcat/common/endorsed/xercesImpl.jar cp=/usr/local/tomcat/common/endorsed/xmlParserAPIs.jar cp=/usr/local/tomcat/common/lib/activation.jar cp=/usr/local/tomcat/common/lib/ant-launcher.jar cp=/usr/local/tomcat/common/lib/ant.jar cp=/usr/local/tomcat/common/lib/commons-collections.jar cp=/usr/local/tomcat/common/lib/commons-dbcp-1.1.jar cp=/usr/local/tomcat/common/lib/commons-logging-api.jar cp=/usr/local/tomcat/common/lib/commons-pool-1.1.jar cp=/usr/local/tomcat/common/lib/jasper-compiler.jar cp=/usr/local/tomcat/common/lib/jasper-runtime.jar cp=/usr/local/tomcat/common/lib/jdbc2_0-stdext.jar cp=/usr/local/tomcat/common/lib/jndi.jar cp=/usr/local/tomcat/common/lib/jta.jar cp=/usr/local/tomcat/common/lib/mail.jar cp=/usr/local/tomcat/common/lib/naming-common.jar cp=/usr/local/tomcat/common/lib/naming-factory.jar cp=/usr/local/tomcat/common/lib/naming-resources.jar cp=/usr/local/tomcat/common/lib/servlet.jar cp=/usr/local/tomcat/common/lib/classes12.jar work dir=/usr/local/tomcat/work/Standalone/localhost/Kgu_java srcDir=/usr/local/tomcat/work/Standalone/localhost/Kgu_java include=ninsyou_jsp.java Exception compiling Compile failed; see the compiler error output for details. Exception: Compile failed; see the compiler error output for details. at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944) at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764) at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:282) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:328) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) Compile failed; see the compiler error output for details. at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944) at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764) at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:282) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:328) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:427) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:142) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) ↓↓ソース↓↓ <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" import="java.io.*,javax.mail.internet.*" import="java.sql.Connection" import="j_com.ninsyou_db" import="j_com.Ora_Para" import="j_com.JCM002S" %> <% Ora_Para para = new Ora_Para(); String Web_home = para.get_url(); String p_msg = ""; String strAuth=request.getHeader("authorization"); if(strAuth==null || !strAuth.substring(0,6).equals("Basic ")){ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); response.setHeader("www-authenticate","basic realm=\"Acts Web 認証\""); out.println("ユーザ認証はキャンセルされました。"); }else{ strAuth=MimeUtility.decodeText("=?iso-8859-1?B?" + strAuth.substring(6) + "?="); String strId = strAuth.substring(0,strAuth.indexOf(":")); String strPass = strAuth.substring(strAuth.indexOf(":") + 1); %> <HTML> <HEAD> <TITLE>Acts Web 認証</TITLE> <SCRIPT LANGUAGE="JavaScript" src="/Kgu_java/JScom.js"> </SCRIPT> </HEAD> <% //コネクション取得の有無で判断 Connection conn = null; ninsyou_db db = new ninsyou_db(); conn = db.connectdb(strId,strPass); if(conn != null){ //ユーザIDのカウント Connection conn1 = null; JCM002S jcm002 = new JCM002S(); jcm002.connectdb(); conn1 = jcm002.Get_conn(); int cnt = 0; if(db.getCnt(strId,conn1) != null && !db.getCnt(strId,conn1).equals("")){ cnt = Integer.parseInt(db.getCnt(strId,conn1)); }else{ p_msg = "パスワードが無効です。"; out.println("パスワードが無効です。"); } String Web_Home = para.get_url(); if(cnt > 0){ %> <BODY <%if(p_msg != null && !p_msg.equals("")){%> onLoad="CMessageBox('<%=p_msg%>',2)" <%}%> > <meta http-equiv="Refresh" content="0; url=http://localhost:9080/Kgu_java/index.html"> <% } }else{ p_msg = "ユーザー名/パスワードが無効です。ログオンは拒否されました。"; %> <BODY onLoad="CMessageBox('<%=p_msg%>',2)"> <% out.println("ユーザー名/パスワードが無効です。ログオンは拒否されました。"); } %> </BODY> </HTML> <% } %> | ||||
|
投稿日時: 2005-08-05 18:59
BASIC認証以前の問題で、JSPから生成したJavaファイルのコンパイルに失敗しています。
get_url()メソッドが解決できない状態ですね。 | ||||
|
投稿日時: 2005-08-08 10:28
すばやい対応ありがとうございました。
コンパイルには成功しました。 が、日本語が文字化けしてしまいます。 Apache 1.3.12 から、ページの HTML に META タグを使って文字コードを指定してもISO-8859-1として出力されるようなのですが、この出力を指定したい場合は.htaccessで指定する方法しかないのですか? | ||||
|
投稿日時: 2005-08-08 11:09
.htaccess 以外にも設定できますよ。
(1.3.x) http://httpd.apache.org/docs/1.3/mod/core.html (2.0.x) http://httpd.apache.org/docs/2.0/mod/core.html 「サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess」だそうです。 [ メッセージ編集済み 編集者: Java僧 編集日時 2005-08-08 11:11 ] | ||||
|
投稿日時: 2005-08-08 11:33
HTML 4.01仕様では、Webブラウザが以下の優先順位で文字コードを
決定することとなっています。 1. HTTPにおけるContent-Typeヘッダのcharsetパラメータ 2. HTML文書内のMETA宣言およびhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ 3. HTML文書内の各要素のcharset属性 NodaさんのJSPを見ると JSPのPageタグで1.についても設定されてますし、2.もちゃんと書いているようです。 でよく見るとApacheと連携されているようですので。 そうすると、JSPのPageタグ情報がApacheのAddDefaultCharsetで 上書きされているような感じに見受けられます。 Apacheの初期設定ですとAddDefaultCharsetでISO-8859-1なので それで文字化けされたのでしょう。 この設定を#でコメントアウト(その場合offと判断されます)するか "off"とされますとうまく行くかもしれません。 | ||||
|
投稿日時: 2005-08-08 14:23
Java僧さん、いっきゅうさんありがとうございます。
現在開発しているシステム以外にも影響が出るとまずいので、.htaccessのやり方でやろうと思います。 それで.htaccessの書き方ですが、 AddType "text/html; charset=Shift_JIS" .jsp と指定して、認証のjspフォルダに入れたのですが、相変わらず文字化けです。 なにがまずいのですか? Webを見て回っても、使用する.htaccessを配置したフォルダに(サブフォルダ)に影響をあたえるはずなのですが・・・ | ||||
|
投稿日時: 2005-08-08 14:36
症状は、ソースの
response.setHeader("www-authenticate","basic realm=\"Acts Web 認証\""); の「Acts Web 認証」の 「認証」という漢字が文字化けして認証ダイアログに表示されてしまうという現象です。 | ||||
|
投稿日時: 2005-08-08 15:28
OSがWindowsではないみたいですが、文字コードはShift_JISで大丈夫でしょうか?
|