1

テスト プログラムは問題なく動作します。クライアントとサーバーを作成し、それらを相互に実行できます。KRB5_CONFIG 環境変数を設定し、ローカル構成をテストに使用できます。

何らかの理由で、コードを本番ソフトウェアに配置すると失敗します。ハードコーディングされた名前で gss_import_name() を呼び出すだけに main() 関数を削除しても、「構成ファイルを開けません」というメッセージが表示されます。

truss を実行すると、多くの Oracle が実行されていることがわかります。多くの異なる Oracle トレース ファイルを開こうとします。それも開けようとする

/krb5/krb.conf

指定したファイルの代わりに。

オラクルが間違った gss を提供しているか、巨大で複雑なビルド システムの他のオプションを提供しているかのようです。私は -L/usr/lib/sparcv9 に注意しますが、これは私の -lgss の後にありますが、それが重要な場合 (C で定期的に作業してから長すぎます!)。そのディレクトリ内の libgss.so.1 は /usr/lib 内のものよりも大きいですが、そのオプションをテスト プログラムのリンク コマンドに入れても問題はありません。

何か助けはありますか?

ありがとう - リチャード

4

3 に答える 3

1

これにより、私たちにとって同様の問題と思われるものが修正されました。

export KRB5_CONFIG=/etc/krb5.conf

この環境変数がまだ設定されていない場合、Oracle がこの環境変数を誤って設定する可能性があります。

$ grep -r KRB5_CONFIG $ORACLE_HOME 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so matches 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1 matches 
$ grep -r '/krb5/krb.conf' $ORACLE_HOME 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so matches 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1 matches
于 2012-12-12T14:35:30.390 に答える
0

OracleライブラリにGSSの実装が含まれていることがわかりました。コードを機能させるために、Oracleライブラリをリンクする前に「-lgss」をリンクしていることを確認しました。

Oracleをユーザー名とパスワードで使用しているため、これがシングルサインオンでOracleを混乱させるかどうかを確認するためのテストは行っていません。それはうまくいきます。

于 2011-08-02T13:31:47.223 に答える
0

HP-UX 11.31 上の Oracle 11.2.0.4.0 でまったく同じ問題に遭遇し、そのためにほぼ丸一日を無駄にしました。実際、安っぽい Oracle lib はputenvwith/opt/krb5/krb.confを実行し、Richard Corfield からのヒントはアプリをクラッシュさせます。唯一の回避策は、シンボリック リンクを作成することです。その問題について、Oracle にサービス リクエストを作成しました。

更新 (2014-06-02): オラクルから更新を受け取りました。彼らはバグを確認しました。シンボルを再定義しているプラ​​イベート GSS-API があるようです。

Bug 10184681 - ORACLE NEEDS TO USE VERSIONED SYMBOLS TO AVOID EXTERNAL SYMBOL CONFLICTS

この問題は 2010 年 10 月から開かれています。ひどい。

于 2014-03-27T13:38:45.723 に答える