2

これは非常に基本的な質問のように思えます。Domino でホストされている実行中のサーブレットで、IBM Notes と Domino の非常に優れたセキュリティを使用して賢明に保護した Domino リソースにアクセスしたいと考えています。

サーブレット (または xAgent) を呼び出したクライアントからのデータを保持し、クライアントが直接書き込むのを防ぎながら、サーブレットが Domino にデータを読み書きできるようにしたいと考えています。

アプリケーションの署名者を表すセッションを取得できれば幸いです。?open&login を使用してサーブレットを呼び出してサインインすることにより、登録ユーザーのセッションを取得できます。これは実用的ではありません。

私はここを見てきました: XPage から呼び出された Java Bean で SessionAsSigner を使用するにはどうすればよいですか? Mark Leusink ( https://stackoverflow.com/users/1177870/mark-leusink ) は、ExtLib の getCurrentSessionAsSigner() を使用できることを意味します。単一のユーザー ID でアプリケーション全体に署名して試してみましたが、セッションは返されません。答えは、サーブレットが FacesContext オブジェクトを取得できないことにあるようです。

これは答えが明らかであるように感じますが、私にはそうではありません。何か案は?

4

5 に答える 5

2

FacesContextJSFのもので、XAgent (=XPage) から使用できます。

サーブレットでは、これを行うことができます:

Session session = NotesFactory.createSession(null, "user", "password");

通常、サーバー ID にはパスワードがなく、これを行うとサーバー ID が使用されます。

Session session = NotesFactory.createSession();
于 2013-02-08T11:50:42.027 に答える
2

OpenNTF で WebDav プロジェクトのソースを確認します。必要なすべてのコードが含まれています

于 2013-02-08T16:10:10.530 に答える
0

com.ibm.domino.osgi.core.context.ContextInfo.getUserSession()

于 2013-02-08T12:04:28.933 に答える
0

Jason - 基本的に、Web ユーザーとして実行を選択しなかった場合、つまりコードの署名者として Web Query Save エージェントを実行するのと同じ機能が必要だと思います。

使用したい特定のアプリケーション パスに対して基本認証を許可するように、インターネット サイト ルールを設定してみてください。これには、サブドメインを使用する価値があるかもしれません。

次に、サーブレット内でこの URL を呼び出し、基本認証パラメーター (ユーザー名とパスワード) を設定します。

このようなもの。

URL url = new URL(URL_TO_CALL);
String authStr = "USERNAME:PASSWORD";
String authEncoded = Base64.encodeBytes(authStr.getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " + authEncoded);
InputStream is = connection.getInputStream();
于 2013-02-08T14:07:18.570 に答える