请帮我解决kerberos + Java问题.我有一个简单的Java程序,可以使用Kerberos对Windows Active Directory进行身份验证.以下java代码工作正常没有任何问题,并打印真实 -
public class KerberosAuthenticator {
public static void main(String[] args) {
String jaasConfigFilePath = "/myDir/jaas.conf";
System.setProperty("java.security.auth.login.config", jaasConfigFilePath);
System.setProperty("java.security.krb5.realm", "ENG.TEST.COM");
System.setProperty("java.security.krb5.kdc","winsvr2003r2.eng.test.com");
boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");
System.out.println(success);
}
}
Run Code Online (Sandbox Code Playgroud)
当我指定krb5.conf文件的路径而不是手动指定领域和kdc时,它会错误地说"Null领域名称(601) - 未指定默认领域".以下是代码 -
public class KerberosAuthenticator {
public static void main(String[] args) {
String jaasConfigFilePath = "/myDir/jaas.conf";
System.setProperty("java.security.auth.login.config", jaasConfigFilePath);
String krb5ConfigFilePath = "/etc/krb5/krb5.conf";
System.setProperty("java.security.krb5.conf", krb5ConfigFilePath);
boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");
System.out.println(success);
}
}
Run Code Online (Sandbox Code Playgroud)
krb5.conf的内容如下 -
[libdefault]
default_realm = ENG.TEST.COM
[realms]
ENG.TEST.COM = {
kdc = winsvr2003r2.eng.test.com …Run Code Online (Sandbox Code Playgroud) 在为自己编写一个小型C#应用程序时,我意识到如果我可以轻松地在textmode中绘制表格,它会很简洁.你知道,像这样:
+-----------------+-----------------+
| Header 1 | Header 2 |
+--------+--------+--------+--------+
| Data 1 | Data 2 | Data 3 | Data 4 |
| Data 1 | Data 2 | Data 3 | Data 4 |
| Data 1 | Data 2 | Data 3 | Data 4 |
+--------+--------+--------+--------+
Run Code Online (Sandbox Code Playgroud)
快速的谷歌搜索没有透露任何信息.有没有这样的现成品,或者我应该推出自己的?
补充:理想版本支持:
但我也会满足于少.:)
我想使用java实现DFS(深度优先搜索)和BFS。
java 是否有一个我可以轻松使用的内置树数据结构?或者我可以使用任何其他东西吗?
我编写了一个应用程序(除其他外)在Windows中运行本地服务,充当Firefox的SOCKS v5代理.
我现在正处于调试阶段,发现某些网站无法正常运行.例如,Facebook.com上的图片上传Java Applet失败,因为无法查找域.
我的应用程序覆盖隐藏的FF配置设置network.proxy.socks__remote__dns将其设置为true.该应用程序的整个目的是允许在防火墙后面访问网站(例如,如果用户在中国),因此此设置对于确保远程解析域(而不仅仅是HTTP请求)至关重要.
在JRE6设置(此处记录)中没有等效的设置,因为远程DNS解析是SOCKS v5的一个功能而不是v4,因为文档似乎意味着我担心它是不可能的.
如何以编程方式确保JRE对所有请求(包括DNS)使用SOCKS v5代理?
更新:重现此问题的步骤:
它会因一系列类未找到的错误而失败,类似于:
load:未找到类com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class.
我相信这是失败的,因为JRE无法解析该类所在的域.我基于这样的信念,即文档(http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html)仅讨论SOCKS v4(其中据我所知,不支持远程DNS).我的deployment.properties文件位于%APPDATA%\ Sun\Java\Deployment中.我可以确认我在Java控制面板中进行的修改会写入该文件.如果不是"使用浏览器设置"而是Java的网络设置覆盖并尝试手动使用SOCKS代理设置,我仍然遇到问题.似乎没有一种简单的方法可以强制JRE通过代理远程执行DNS.
更新2:
没有SOCKS代理,来自我的本地客户端
两个主机都不可访问(因为防火墙)
如果我登录到远程服务器,我会得到:
几分钟后这两个IP都会发生变化,因为Facebook似乎使用循环DNS和其他负载均衡.
通过在Firefox中设置代理设置,我可以毫无困难地导航到www.facebook.com(因为DNS正在代理上远程解析).我转到带有Java applet的页面,它已经失败了,我已经报告了堆栈跟踪消息.
但是,如果我编辑Windows\System32\drivers\etc\hosts,为upload.facebook.com添加正确的IP我可以让applet加载并正常工作(有时需要重启FF).
这个证据似乎支持了我的理论,即Java Runtime 没有在代理上解析DNS,而只是通过它来路由流量.
我的应用程序是用于大规模部署,并且需要在其他站点(而不仅仅是facebook)上使用java applet.我真的需要解决这个问题.
更新3由ZZ Coder请求的Stacktrace转储:
load: class com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class not found.
java.lang.ClassNotFoundException: com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 我正在写一个TFS Checkin策略,它检查我们的源文件是否包含我们的文件头.
我的问题是,我们的文件头包含一个特殊字符"©",不幸的是我们的一些源文件是用ANSI编码的.因此,如果我在策略中读取这些文件,则字符串看起来像"Copyright 2009".
string content = File.ReadAllText(pendingChange.LocalItem);
Run Code Online (Sandbox Code Playgroud)
我厌倦了改变字符串的编码,但它没有帮助.那么如何阅读这些文件,我得到了正确的字符串"Copyright©2009"?
感谢帮助!
关心恩伊
我正在阅读python 2.5 的以下在线计时器手册,但我想知道Timer类所在的实际模块在哪里?
迦特
我的页面上有一个锚标记,我想要一个附加到它的事件,当这个元素的显示发生变化时会激活.
我怎么写这个活动?并且只要这个元素的显示发生变化就会捕获?
我想用python脚本删除一些文件(使用Windows时).我试过以下代码:
>>>import os
>>> os.remove ('D:\new.docx')
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in -toplevel-
os.remove ('D:\new.docx')
OSError: [Errno 22] Invalid argument: 'D:\new.docx'
Run Code Online (Sandbox Code Playgroud)
这里的任何人都可以帮我吗?
谢谢.
吉拉尼
假设我们想要实现PHP的等价物file_get_content.
什么是最佳做法?(优雅可靠)
这是一些命题,它们是否正确?
使用with声明:
def file_get_contents(filename):
with file(filename) as f:
s = f.read()
return s
Run Code Online (Sandbox Code Playgroud)
使用标准open()安全?
def file_get_contents(filename):
return open(filename).read()
Run Code Online (Sandbox Code Playgroud)
在任一解决方案中文件描述符会发生什么