3

私はJavaでアプリケーションを作成しています。このアプリケーションは、リモートSOAPサービス(JIRA)のメソッドを呼び出す前に、そのサービスにログインする必要があります。

これを行う方法の例、たとえばhttp://www.j-tricks.com/1/post/2010/8/jira-soap-client.htmlを見てきましたが、ある時点でメモリ内のパスワード。

パスワードをchar[]として保存する必要があることを読みましたが、それでも、パスワードを平文で保存することについてはまったく心配しています。

クライアントがSOAPサービスにログインするために使用するパスワードをどのように保存する必要がありますか?そして、それをどのように読んでJIRAに渡す必要がありますか?

編集 このアプリケーションはSpringを使用するため、パスワードはコードではなくBean構成ファイルに保存される可能性があります。

4

2 に答える 2

0

SOAP ログイン メソッドは、セッションに使用できる文字列トークンを返すため、使用後にパスワードをメモリに保存する必要はありません。しかし、あなたは長期的な使用について話していると思います。アプリケーションには通常、より恒久的な認証を設定できる構成ページがあり、接続が再構成されるたびにパスワードを入力する必要があります。

于 2012-09-20T17:43:31.413 に答える
0

最終的に決めたのがこちら。

まず、いくつかの説明。

  • パスワードは暗号化され、データベースに保存されます。
  • パスワードは (DBA によって) 静的に入力されます。
  • これは暗号化と復号化の演習であるため、MD5 などのハッシュ アルゴリズムは適用されません。

SQL で暗号化し、Java で復号化する方法を調べましたが、特に優れたものはありませんでした。したがって、私は次のアプローチに決めました。

  • DBA がパスワードを入力するとき、パスワードを入力するときに DBMS 固有の暗号化方式 (MySQL の暗号化など) を実行します (たとえば、insert into creds(user,password) 値 ('bob',encrypt('password'));
  • Spring アプリケーションにプロパティとして渡されるパスワードを取得するための SQL には、復号化が含まれます (例: select user,decrypt(password) from creds)。

それ以外は、これはユーザー管理とデータベースのロックダウンの演習です。たとえば、特定の人 (DBA) のみがフル アクセスを取得し、アプリケーションは読み取り専用ユーザーを使用します。

これが将来誰かに役立つことを願っています。

于 2012-10-23T08:10:07.037 に答える