Tag: security

JNLP获得许可

我最近在通过JNLP启动我的应用程序时偶然发现了一个问题。 我现在把它缩小到java.security.AccessControlException ,它拒绝我关闭我的ExecuterService 。 所以,我做了一些阅读,发现我需要权限( modifyThread )才能成功关闭服务。 我还发现我应该使用 -tag(在JNLP文件中)来请求它,但我对如何使用感到困惑。 标签的文档说: […]如果指定了all-permissions元素,则应用程序将具有对客户端计算机和本地网络的完全访问权限 。 如果应用程序请求完全访问权限,则必须对所有JAR文件进行签名 。 将提示用户 […] 从阅读本文来看,在我看来,我可以选择获得全部或无权限……这似乎是一个令人困惑的实现。 因为我只需要一个关闭我的服务。 我也阅读了这篇文章 ,告诉我不应该请求所有权限,因为我会打开用户计算机以获取恶意代码。 那么,有没有办法指定我只需要特定的权限( modifyThread ),因此我不需要签署我的jar? 或者我是否必须使用“签署我的jar子并请求一切” – 接近?

Spring Security – 白名单IP范围

我查看过的很多资源和stackoverflow问题都提供了使用.xml文件的答案: 使用Spring Security的IPfilter Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL http://docs.spring.io/spring-security/site/docs/3.0.x/reference/appendix-namespace.html#nsa-gms 我想知道的是,如果可以在不使用XML配置的情况下使用Spring Security将IP地址范围列入白名单? 以下是我的控制器中的一个简单方法: @RequestMapping(value = “/makeit”, method = RequestMethod.GET) @ResponseBody //@PreAuthorize(“hasIpAddress(‘192.168.0.0/16’)”) public String requestData() { return “youve made it”; } 我已经为安全配置创建了一个单独的类,但它没有太多,我只是为EnableGlobalMethodSecurity注释创建它 – 这样我就可以使用@PreAuthorize注释(来自这里的答案: @PreAuthorize注释不工作弹簧安全性 )。 @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true) public class SpringConfiguration extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws […]

Struts 2 S2-016 Vulenerability Mitigation升级

最近struts修补了一个允许攻击者执行远程代码的漏洞。 显然没有修补这就像给黑帽子带来一个红地毯欢迎与潮流: – / http://struts.apache.org/release/2.3.x/docs/s2-016.html 基本上它允许执行攻击命令,如下所示: 合法行为: http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}被利用的行动: http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,’goes’,’here’})).start()} 虽然我知道升级应该尽快完成,但是由于我们的代码库使用了旧的struts版本和插件,因此尽快进行升级。 这将需要一些重构来升级struts 2库,然后那些需要进行测试等。 我的问题是,是否有人有任何想法阻止此漏洞被执行? 这将只有我们能够升级。 我想知道是否可以在对OGNL进行评估之前编写一个拦截器来清理URL,如果是这样,它是否可以缓解这个问题? 我的其他想法是以某种方式使用Java安全管理器来停止任意进程调用,这可能吗? 它会临时修补这个洞吗? 正在使用的服务器是jBoss,如果有人认为这是相关的。

GSSException:修改了消息流(41)

我正在使用森林架构中的LDAP(所有服务器和我的服务器都是Windows)。 我使用NTLM身份validation绑定到AD。 我有一个JAVA代码,可以对LDAP服务器执行操作。 代码被包装为tomcat servlet。 直接运行JAVA代码(只是作为应用程序执行LDAP身份validation代码)时,绑定对本地域(本地域=我登录到Windows,并与此域的用户运行此进程)和外部域都有效。 当将JAVA代码作为servlet运行时,绑定工作并从一个域validation用户,但如果我尝试从其他域validation用户,则无法正常工作,它将无法工作(仅当我重新启动tomcat时它才会起作用)。 我得到一个例外: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Message stream modified (41))]] 我会提到它是相同的代码,具有相同的配置和相同的krb5文件。 编辑:更多信息: 这是我的代码: public void func(String realm, String kdc) { try { URL configURL = getClass().getResource(“jaas_ntlm_configuration.txt”); System.setProperty(“java.security.auth.login.config”, configURL.toString()); System.setProperty(“java.security.krb5.realm”, realm); System.setProperty(“java.security.krb5.kdc”,kdc); // If the application is run on NT rather than […]

Java Access Token PKCS11未找到提供程序

您好我正在尝试从Java中的智能卡访问密钥库。 我正在使用以下代码.. 我正在使用OpenSc http://www.opensc-project.org/opensc的Pkcs11实现 文件windows.cnf = name=dnie library=C:\WINDOWS\system32\opensc-pkcs11.dll Java代码 = String configName = “windows.cnf” String PIN = “####”; Provider p = new sun.security.pkcs11.SunPKCS11(configName); Security.addProvider(p); KeyStore keyStore = KeyStore.getInstance(“PKCS11”, “SunPKCS11-dnie”); =)(= char[] pin = PIN.toCharArray(); keyStore.load(null, pin); 执行时带=)的行(=抛出以下exception java.security.KeyStoreException: PKCS11 not found at java.security.KeyStore.getInstance(KeyStore.java:635) at ObtenerDatos.LeerDatos(ObtenerDatos.java:52) at ObtenerDatos.obtenerNombre(ObtenerDatos.java:19) at main.main(main.java:27) Caused by: java.security.NoSuchAlgorithmException: no such algorithm: […]

阻止重定向登录Spring Security

我有Spring MVC + Spring Security项目。 … … 如果用户进入登录页面,如果成功将被重定向到“/ security / success”,我在控制器中使用会话对象执行更多操作(记录userID,…等) 我的问题是当一个GUEST用户要去/ dashboard / myaccount(需要AUTH)时,他被重定向到LOGIN页面(我不想要,我更喜欢抛出404)。 之后Spring Security没有重定向到/ security / success。 而是重定向到/ dashboard / myaccount。 在GUEST尝试访问AUTH页面的情况下,我更愿意找到一种方法来完全禁用此重定向到登录页面。 有办法做到这一点吗? TNX

Spring安全性@secure不使用角色层次结构

我在spring security spring-securityConfig.xml使用spring security中的角色层次结构 ROLE_ADMIN > ROLE_WORKFLOW ROLE_ADMIN > ROLE_ISBN_INSERTION ROLE_ADMIN > ROLE_PERMISSION_UPDATE ROLE_ADMIN > ROLE_ASSIGNMENT ROLE_ADMIN > ROLE_CALIBRATION ${ldap.userDnPatterns} 在服务方法中,我使用@Secured({ “ROLE_PERMISSION_UPDATE”})如果具有角色ROLE_ADMIN的用户登录到应用程序并尝试访问此安全方法,则它会抛出访问被拒绝的exception。

适用于Secure Hbase的Java客户端

嗨,我正在尝试为安全的hbase编写一个java客户端。 我想从代码本身做kinit,因为我使用的是用户组信息类。 任何人都可以指出我在哪里错了吗? 这是我试图连接o hbase的主要方法。 我必须在CONfiguration对象中添加配置而不是使用xml,因为客户端可以位于任何位置。 请参阅以下代码: public static void main(String [] args) { try { System.setProperty(CommonConstants.KRB_REALM, ConfigUtil.getProperty(CommonConstants.HADOOP_CONF, “krb.realm”)); System.setProperty(CommonConstants.KRB_KDC, ConfigUtil.getProperty(CommonConstants.HADOOP_CONF,”krb.kdc”)); System.setProperty(CommonConstants.KRB_DEBUG, “true”); final Configuration config = HBaseConfiguration.create(); config.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION, AUTH_KRB); config.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHORIZATION, AUTHORIZATION); config.set(CommonConfigurationKeysPublic.FS_AUTOMATIC_CLOSE_KEY, AUTO_CLOSE); config.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, defaultFS); config.set(“hbase.zookeeper.quorum”, ConfigUtil.getProperty(CommonConstants.HBASE_CONF, “hbase.host”)); config.set(“hbase.zookeeper.property.clientPort”, ConfigUtil.getProperty(CommonConstants.HBASE_CONF, “hbase.port”)); config.set(“hbase.client.retries.number”, Integer.toString(0)); config.set(“zookeeper.session.timeout”, Integer.toString(6000)); config.set(“zookeeper.recovery.retry”, Integer.toString(0)); config.set(“hbase.master”, “gauravt-namenode.pbi.global.pvt:60000”); config.set(“zookeeper.znode.parent”, “/hbase-secure”); config.set(“hbase.rpc.engine”, “org.apache.hadoop.hbase.ipc.SecureRpcEngine”); config.set(“hbase.security.authentication”, […]

jar子似乎不再签名了。 JARSigningException:找到无符号条目

NB 7.4RC2,Win 7 在Java控制面板中,选中“保留Internet临时文件”复选框。 我正在使用可信证书签署我的Web Start应用程序。 然而,dist / lib中的第三方jar子似乎是未签名的。 C:\ Program Files(x86)\ Java \ jdk1.7.0_40 \ bin \ jarsigner“-verify javafx-dialogs-0.0.3.jar jar是未签名的。 (签名丢失或无法解析) 因此,当我在调试器中运行我的应用程序时,它拒绝开始抱怨未签名的jar ExitException[ 3]com.sun.deploy.net.JARSigningException: Found unsigned entry in resource: file:/C:/Users/me/Documents/NetBeansProjects/MyApp/dist/lib/RXTXcomm.jar 当我使用自签名jar运行“在资源中找到未签名的条目”时,我得到了同样的错误。 就像NetBeans停止签署jar一样。 我从Java控制面板中删除了Java缓存中的所有临时文件。 现在它无法在IDE中单击“运行”和“调试”,并将dist文件夹复制到桌面并单击jnlp文件。 ExitException[ 3]com.sun.deploy.net.JARSigningException: Found unsigned entry in resource: file:/C:/Users/me/Desktop/dist/lib/RXTXcomm.jar 建设时: 警告:签名者证书将在六个月内到期。 将JAR:C:\ Users \ me \ Documents \ NetBeansProjects \ MyApp […]

使用java api和epass2003令牌的pdf数字签名

我尝试使用java api为pdf添加数字签名,并通过epass2003令牌读取签名。 所以,在这里我完成了这项工作(将数字签名添加到pdf中),并且工作正常,但是当我在另一个系统中打开此pdf文档时,它显示“Atleast one signature has problem”,在我的系统中正确validation符号请帮助我已经附上了我的代码,请找到它。 public class Test { public static void main(String args[]) throws IOException, GeneralSecurityException, DocumentException, CertificateVerificationException{ // Create instance of SunPKCS11 provider String userFile = “C:/results/test.pdf”; String userFile_signed = “C:/results/test_signed.pdf”; String pkcs11Config = “name=eToken\nlibrary=C:\\Windows\\System32\\eps2003csp11.dll”; java.io.ByteArrayInputStream pkcs11ConfigStream = new java.io.ByteArrayInputStream(pkcs11Config.getBytes()); sun.security.pkcs11.SunPKCS11 providerPKCS11 = new sun.security.pkcs11.SunPKCS11(pkcs11ConfigStream); java.security.Security.addProvider(providerPKCS11); // Get provider KeyStore and […]