- PR -

TomcatManagerの削除(remove)リンクを非表示にしたい

1
投稿者投稿内容
ぞえ
会議室デビュー日: 2008/04/09
投稿数: 3
投稿日時: 2008-06-03 14:26
TomcatManagerからAP単体で再起動しようとして、
reloadではなくremoveをクリックしてしまい、
サービス時間中にTomcatを再起動する事態が発生してしまいました。

removeは使用しないので、非表示にする方法はないでしょうか。

宜しく御願い致します。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2008-06-03 16:58
バージョンがわからないので答えづらいのですが、
削除のリンクに対するアクションを書き換えてしまう方が
簡単そうな気がします。
server/webapps/manager/WEB-INF/web.xml
を編集して、/remove のURLマッピングを変えてしまうことで対応できませんか?

(本当にリンクを消したいならソースを手に入れていじるしかないかと。)


[ メッセージ編集済み 編集者: ひろ@ya 編集日時 2008-06-03 17:16 ]
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2008-06-03 17:25
試してみないとわかりませんが、ソースの\container\catalina\src\share\org\apache\catalina\servlets
にある \LocalStrings*.properties (多言語対応で3つぐらいファイルがあるはずです)の

htmlManagerServlet.appsRemove
の内容を空文字列にしてしまうと、リンクの中身が空文字列になってクリック不能になるような気がします。
ぞえ
会議室デビュー日: 2008/04/09
投稿数: 3
投稿日時: 2008-06-04 10:23
ひろ@ya様、ありがとうございます。

Tomcatのバージョンは4.1です。古いです。
インストールディレクトリ配下のweb.xmlを全て調べましたが、
Removeに関する設定が見あたりませんでした。

引き続きjsp等他のファイルも調べてみます。
新参者ですが、これからも宜しく御願い致します。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2008-06-04 12:40
手元のTomcat 4.1(4.1.36)では/removeがManagerサーブレットに
マッピングされていますよ?60行目あたりです。
もっと古いのだと違うのかな?
違うweb.xmlを見てませんか?
ぞえ
会議室デビュー日: 2008/04/09
投稿数: 3
投稿日時: 2008-06-04 14:15
Java僧様、ありがとうございます。

Tomcatのバージョンは4.1.12です。もっと古いです。新しくしたいです。
最初に詳細に書かず申し訳ございませんでした。

server/webapps/manager/WEB-INF/web.xml
ですが、コメント含め全部で88行しかなく、マッピングは↓しかありませんでした。

<!-- Define the Manager Servlet Mapping -->
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HTMLManager</servlet-name>
<url-pattern>/html/*</url-pattern>
</servlet-mapping>

4.1.12のソースをDLして、HTMLManager.javaのdoGetメソッドに

// Process the requested command
if (command == null) {
response.sendRedirect(request.getRequestURI()+"/list");
} else if (command.equals("/install")) {
install(writer, installConfig, installPath, installWar);
} else if (command.equals("/list")) {
list(writer, "");
} else if (command.equals("/reload")) {
reload(writer, path);
} else if (command.equals("/remove")) {
remove(writer, path);
} else if (command.equals("/sessions")) {
sessions(writer, path);
} else if (command.equals("/start")) {
start(writer, path);
} else if (command.equals("/stop")) {
stop(writer, path);
} else {
String message =
sm.getString("managerServlet.unknownCommand", command);
list(writer, message);
}

とあったので、これを修正してjarを入れ替えれば良いということでしょうか。
できればjspの修正で非表示にするだけで済ませたいのですが・・・

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-06-04 15:46
ソースを見ましたが、JSPは使っていませんよ。
HTMLManager.javaを見たなら、
下のほうにテンプレートが定数で定義されていますよね。

直すのはそこです。

この手の管理コンソールは、誤操作を起こすと致命的です。
ですので、本来は機能を殺すのではなく、慎重に操作すべきです。
本当に削除したいときに困ると思いますよ。
1

スキルアップ/キャリアアップ(JOB@IT)