重要说明:浏览器必须支持HTTP Kerberos SPNEGO。例如,Firefox或Internet Explorer。
对于Firefox,请通过加载about:config页面访问低级配置页面。然后转到network.negotiate-auth.trusted-uris首选项,然后添加主机名或受HTTP Kerberos SPNEGO保护的Web服务器的域(如果使用多个域,并且主机名使用逗号分隔它们)。
重要提示:本卷曲版本必须支持GSS,运行卷曲-V。
$ curl -V curl 7.19.7(universal-apple-darwin10.0)libcurl / 7.19.7 OpenSSL / 0.9.8l zlib / 1.2.3 协议:tftp ftp telnet dict ldap http文件https ftps 功能:GSS协商IPv6大文件NTLM SSL libz
使用kinit登录到KDC ,然后使用curl来获取受保护的URL:
$ kinit 请输入tucu @ LOCALHOST的密码: $ curl --negotiate -u:-b〜/ cookiejar.txt -c〜/ cookiejar.txt http:// $(主机名-f):8080 / hadoop-auth-examples / kerberos / who 输入用户“ tucu”的主机密码: 您好Hadoop Auth示例!
该--negotiate选项启用SPNEGO的卷曲。
的-u:选项是必需的,但忽略了用户(即已经使用kinit-ED的主要被使用)。
该-b和-c是使用存储和发送的HTTP cookies。
使用AuthenticatedURL类获取经过身份验证的HTTP连接:
... URL url =新URL(“ http:// localhost:8080 / hadoop-auth / kerberos / who”); AuthenticatedURL.Token令牌=新的AuthenticatedURL.Token(); ... HttpURLConnection conn = new AuthenticatedURL()。openConnection(url,token); ... conn = new AuthenticatedURL()。openConnection(url,token); ...
下载Hadoop-Auth的源代码,示例位于src / main / examples目录中。
编辑hadoop-auth-examples / src / main / webapp / WEB-INF / web.xml并为为Kerberos配置的AuthenticationFilter定义设置正确的配置初始化参数(必须指定正确的Kerberos主体和密钥表文件)。有关详细信息,请参考配置文档。
通过运行mvn package命令创建Web应用程序WAR文件。
将WAR文件部署在servlet容器中。例如,如果使用Tomcat,则将WAR文件复制到Tomcat的webapps /目录。
启动Servlet容器。
尝试使用curl访问受保护的资源。受保护的资源是:
$ kinit 请输入tucu @ LOCALHOST的密码: $ curl http:// localhost:8080 / hadoop-auth-examples / anonymous / who $ curl http:// localhost:8080 / hadoop-auth-examples / simple / who?user.name = foo $ curl --negotiate -u:-b〜/ cookiejar.txt -c〜/ cookiejar.txt http:// $(主机名-f):8080 / hadoop-auth-examples / kerberos / who
$ kinit 请输入tucu @ LOCALHOST的密码: $ cd示例 $ mvn exec:java -Durl = http:// localhost:8080 / hadoop-auth-examples / kerberos / who .... 令牌值:“ u = tucu,p = tucu @ LOCALHOST,t = kerberos,e = 1295305313146,s = sVZ1mpSnC5TKhZQE3QLN5p2DWBo =” 状态码:200 OK 您是:user [tucu]校长[tucu @ LOCALHOST] ....