Tag: 安全

为什么`java.lang.SecurityException:禁止包名:java`是必需的?

我创建了一个类“String”并将其放在包“java”中[实际上我想创建java.lang以查看classLoader加载哪个类 将类加载到JVM后,将不会再次加载相同的类(我重复,同一个类) 引自oreilly]。 但那件事后来,为什么我要上这门课 java.lang.SecurityException:禁止的包名: java 为什么安全性原因java不允许我在java包中有一个类? 如果没有这样的检查,怎么办?

如何在GlassFish 2上保护网络服务?

我们在GlassFish 2服务器上部署了一些不透明的EJB(EJB3),它们通过@Webmethod注释将它们的一些方法公开为webservices。 现在我们想要保护这些Web服务方法,以便只有经过身份validation的客户端才能调用它。 实现这一目标的好方法是什么?

java.security.NoSuchAlgorithmException:找不到任何支持AES / ECB / PKCS7PADDING的提供程序

我试图使用AES算法加密数据。 但是,发生了以下exception。 java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7PADDING 有人知道这个问题的解决方案吗? 我的JDK版本是1.7。

如何签署自定义JCE安全提供程序

Sun的PKCS11 JCE安全提供程序缺少我们需要的一些function。 所以我使用原始资源编写了一个增强版本。 不幸的是,JCE基础设施拒绝新的提供商 “JCE无法validation提供商” 因为没有正确签名。 javax.crypto.JceSecurity.verifyProviderJar(…)抛出。 (它调用javax.crypto.JarVerifier.verify() ) 有关如何签署新提供商以使其与JCE一起使用的任何建议?

对未签名的Java小程序可以做什么的限制?

我正在尝试编译一个完整的列表,列出对未签名的Java小程序的所有限制 (定义为普通Java应用程序可以执行的操作,但未签名的Java小程序不能)。 这是我到目前为止编译的列表: 一个未签名的Java小程序…… 无法访问本地文件系统。 无法访问系统剪贴板。 无法启动打印作业。 无法连接或从任何第三方服务器(applet源自的服务器以外的任何服务器)检索资源。 无法使用多播套接字。 无法创建或注册SocketImplFactory , URLStreamHandlerFactory或ContentHandlerFactory 。 无法侦听传入的套接字连接。 无法收听数据报。 无法访问某些系统属性(java.class.path,java.home,user.dir,user.home,user.name)。 无法创建或注册SecurityManager对象。 无法使用Runtime或System的load()或loadLibrary()方法动态加载本机代码库。 无法通过调用任何Runtime.exec()方法生成新进程。 无法在运行不受信任代码的线程组之外创建或访问线程或线程组。 无法在java.* , sun.*和netscape.*定义类。 无法从sun.*包显式加载类。 无法通过调用System.exit()或Runtime.exit()退出Java运行时。 无法访问系统事件队列。 无法使用java.lang.Classreflection方法获取有关类的非公共成员的信息,除非该类是从与不受信任的代码相同的主机加载的。 无法以任何方式操纵安全身份(java.security)。 无法设置或读取安全属性(java.security)。 无法列出,查找,插入或删除安全提供程序(java.security)。 问题:是否有任何限制缺失? 如果是这样,请清楚说明您认为列表中缺少的限制。

秘密可以隐藏在提供访问凭证的“安全”java类中吗?

这是一个头脑风暴的问题,关于Java(或不是)的可能性。 我想知道是否可以隐藏类中的秘密,并防止再使用Java代码或其任何function (安全性,reflection,序列化,类加载器,你的名字……)来访问它。 以下是我到目前为止的想法: public final class Safe { private String secret; private HashMap validCertificates = new HashMap(); public Safe(String aSecret) { this.secret = aSecret; } public final class Credentials { private String user; private Credentials(String user) { this.user = user; } } public final Credentials getCredential(String user) { // Following test is just for […]

反思安全

如何通过不允许Method , Field , Constructor对象调用setAccessible(true)来强制执行reflection安全性? SecurityPolicy文件还是其他什么? 通常,对于独立Java应用程序,没有注册SecurityManager 。 我使用这个System.setSecurityManager(new SecurityManager()); 这种方法适用于调用方法。 我想强制执行使用jar的整个jar或客户端代码不允许调用setAccessible(true); 有更好的方法吗? 谢谢。

将C#RSACryptoServiceProvider转换为JAVA代码

我得到了由Web服务团队编写的这个C#代码,它公开了我计划使用的一些Web服务。 我的密码需要使用此代码加密,以便Web服务知道如何在其末端解密它。 using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(publicKey); byte[] plainBytes = Encoding.Unicode.GetBytes(clearText); byte[] encryptedBytes = rsa.Encrypt(plainBytes, false); return Convert.ToBase64String(encryptedBytes); } 我正在使用Java来使用这个Web服务,而且现在,我在将#C代码转换为Java代码时遇到了问题,因为该Web服务无法正确解密我的密码。 这是我目前失败的尝试: – // my clear text password String clearTextPassword = “XXXXX”; // these values are provided by the web service team String modulusString = “…”; String publicExponentString = “…”; BigInteger modulus = new […]

通过Java API从远程主机进行HDFS访问,用户身份validation

我需要通过Java API从远程桌面使用HDFS集群。 一切正常,直到写访问。 如果我正在尝试创建任何文件,我会收到访问权限exception。 路径看起来不错,但exception表示我的远程桌面用户名,这当然不是我需要访问所需的HDFS目录。 问题是: – 有没有办法在Java API中使用“简单”身份validation来表示不同的用户名? – 您能否在Java API示例中指出hadoop / HDFS中的身份validation/授权方案的一些很好的解释? 是的,我已经知道’whoami’在这种情况下可能会使用shell别名重载但我宁愿避免像这样的解决方案。 此处的具体细节是我不喜欢通过SSH和脚本使用管道等一些技巧。 我想使用Java API执行所有操作。 先谢谢你。

如何请求需要客户端证书进行身份validation的URL

我需要从使用客户端证书进行身份validation的服务器请求URL,但无法找到为我的应用程序执行此操作的方法。 我的问题是我正在处理的Java客户端有本地可用的证书文件,但是由于它将在其上运行的PC的限制,它无法在密钥库中安装证书。 简而言之,我只是希望能够明确指定用于我需要检索的URL的证书。 有什么建议么?