使用预装的 IBM NAS Kerberos

Using pre-installed IBM NAS Kerberos

我正在尝试使用 AIX(版本 7.1)附带的预安装(静态)kerberos 库构建身份验证应用程序,到目前为止,它是使用 MIT Kerberos 共享库构建的。

预先安装的 AIX kerberos 库存在于 /usr/krb5/lib。

这里是 make 输出的片段,它失败了:

xlC_r -q64 -qthreaded -qcpluscmt -qcheck=nullptr -qlanglvl=extended -qsuppress=1500-029:1540-1405:0711-224 -qnotempinc -qstaticinline -I/cb/cb10/cb/server/include -I/cb/cb10/cb/server/include/stl -I/sv/app/oracle/product/12.1.0.2/precomp/public -I/sv/app/oracle/product/12.1.0.2/rdbms/demo -I/sv/app/oracle/product/12.1.0.2/rdbms/public -g -qfullpath -DAIX -I/sv/app/openssl/product/openssl-1.0.1g/include -bstatic -I/usr/krb5/lib -I/sv/app/tuxedo/product/12.1/include -DBI_FN_EVALUATE -DNDEBUG -O3  -c authsvr.cc

"trekrb5.h",第 47.10 行:1540-0836 (S) 未找到 #include 文件 "gssapi/gssapi.h"。 "trekrb5.h",第 48.10 行:1540-0836 (S) 找不到#include 文件。 make: *** [authsvr.o] 错误 1enter code here

我正在使用 IBM NAS 1.5.0.3。

我查找了来自 AIX NAS 安装的 gssapi.h 文件。但是没有找到这样的文件。

删除对 gssapi.h 文件的引用(在 trekrb5.h 罪魁祸首文件中)给出了一个错误:"The text "OM_uint32" is unexpected"。我在 /usr/krb5/ 中搜索(grepped - in /usr/krb5/)寻找 OM_uint32,但在 /usr/krb5/.

中找不到

从gassapi.h获得的MIT-Kerberos源码:

typedef uint32_t gss_uint32; typedef int32_t gss_int32;

typedef gss_uint32 OM_uint32;

但是改变所有这些东西可能需要很长时间。有没有捷径可用?

你能告诉我我做错了什么吗? 我的制作知识只是初学者的知识。任何帮助表示赞赏。

当编译器(严格来说,它是预处理器)没有找到文件头(gssapi/gssapi.h)时,您必须手动找到它(使用实用程序 find(1)),并且给编译器一个 -I 选项。例如:

$ find / -name gssapi.h 2>/dev/null
/tmp/foobar/gssapi/gssapi.h

$ xlC_r ... -I/tmp/foobar

编辑:如果您的计算机上没有这样的 gssapi.h,那么您已经安装了一个包含它的组件。请联系您的软件供应商。

编辑:AIX 的 Kerberos 也可以从外部非官方来源下载:http://www.perzl.org/aix/index.php?n=Main.Krb5

此问题已通过安装 krb5.toolkit.adt 得到解决 - https://bugzilla.mozilla.org/show_bug.cgi?id=237684