2023年6月16日金曜日

スクリプトで拡張Javaクラスや実行可能ファイルを使用する場合

PaperCut MF/Plusは、内部的にRhinoスクリプト・エンジンを使用しています。
有効化すると、Rhinoは拡張Javaクラスを利用することができ、
外部プロセスの実行やJavaライブラリ関数の呼び出しなどのアクションを実行することができるようになります。

これは高度な機能です。
すべてのインストールにおいてデフォルトで無効化されています。
PaperCutは、この機能を有効化する前に、スクリプトで拡張Javaクラスを使用することのリスクを理解していただくことを推奨しています。

一般的に、日付, 数値,文字列 (Print Script API referenceやDevice Script API referenceに記載されているもの) 以外の
クラスを使用されている可能性があるため、拡張クラスを使用しているかどうかを確認します。
OSレベルでコマンドを呼び出したり、プリント/デバイス・スクリプトから非タイプのクラスにアクセスしたりすることもできます。

一般的にこれはまれなことです!

プリント・スクリプトやデバイス・スクリプトで拡張Javaクラスを使用する場合、
設定ファイル「security.properties」の関連する設定キーを有効化する必要があります。


1. 設定ファイル「security.properties」([app-path]/server/security.properties)をテキスト・エディタから開いてください。

  Windows
   管理者権限でメモ帳を起動し「security.properties」を開いてください。

  macOS/Linux
   sudo や su を使用してrootでエディタから「security.properties」を開くことを推奨します。

2. 次の設定キーの値を「Y」に変更してください。

  ● security.print-script.allow-unsafe-code
  ● security.device-script.allow-unsafe-code
  ● security.card-no-converter-script.allow-unsafe-code

3. 「security.properties」を保存してください。

4. サービス「PaperCut Application Server」を再起動してください。

必要な場合以外、上記の設定キーの値は「N」に設定しておくことを推奨します。



スクリプト・エンジンのトラブルシューティング

プリント・スクリプトやデバイス・スクリプトを編集する前に、プリント・スクリプトとデバイス・スクリプトの設定キーを有効化する必要があります。

プリント・スクリプトやデバイス・スクリプトが有効化されていない場合にこれらスクリプトを編集しようとすると、
スクリプト・エディタのインタフェースがグレーアウトして編集できず、管理者Web画面上に警告が表示されます。

プリント・スクリプトとデバイス・スクリプトはデフォルトでは有効化されていません。
有効化する場合、「[app-path]/server/security.properties」内の
設定キー「security.print-and-device-script.enabled」の値を「Y」に変更してください。


























拡張Javaクラス・スクリプトの失敗のトラブルシューティング

スクリプトで拡張Javaクラスを使用する場合、次の設定キーのいずれかの値が「N」に設定されている場合、
スクリプトの非拡張部分は通常通りに実行されますが、スクリプトで拡張クラスは実行されません。

   ● security.print-script.allow-unsafe-code

   ● security.device-script.allow-unsafe-code

   ● security.card-no-converter-script.allow-unsafe-code

PaperCut管理画面のアプリケーション・ログ(<ログ> - <アプリケーション・ログ>) に次のようなエラーが表示されます。

The print script encountered an error when running [function] for job on printer [printer name]… Error: ReferenceError: [class] is not defined.


エラーには、プリント・スクリプトで問題が発生した行番号が記載されます。

下記の「アプリケーション・ログ」のスクリーンショットには、スクリプトの開始時に「script starting」というメッセージを記録するために、
「actions.log.info(message)」メソッドが使用されています。



 


エラーを修正するためには、安全でないコードの使用を許可するか、スクリプトから拡張クラスを削除する必要があります。



-------------------------

https://www.papercut.com/help/manuals/ng-mf/applicationserver/security/using-extended-java-classes-in-scripts/



0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。