Tag: security

SignerID转换为BouncyCastle库中的X509CertSelector

我正在尝试validation特定邮件是否使用我自己的信任锚识别的实体证书中的有效签名进行签名。 我这样做: public static boolean isValid(CMSSignedData signedData, X509Certificate rootCert) throws Exception { CertStore certsAndCRLs = signedData.getCertificatesAndCRLs(“Collection”, “BC”); SignerInformationStore signers = signedData.getSignerInfos(); Iterator it = signers.getSigners().iterator(); if (it.hasNext()){ SignerInformation signer = (SignerInformation)it.next(); X509CertSelector signerConstraints = signer.getSID(); PKIXCertPathBuilderResult result = buildPath(rootCert, signerID, certsAndCRLs); return signer.verify(result.getPublicKey(), “BC”); } return false; } 但这一行给了我一个编译错误: X509CertSelector signerConstraints = signer.getSID(); 因为它无法从SignerId转换为X509CertSelector。 我尝试使用显式强制转换: […]

Java Web应用程序安全性:向请求添加令牌

我正在寻找一种方法或当前的API,允许您将令牌添加到Web应用程序请求。 也许在会议期间但不是坚持。 或者,如果您可以通过概述一种有效的方法来帮助我 例如 1. GET request => Servlet生成一个令牌并在视图中打印它 2.返回带有隐藏令牌的视图 3.提交POST请求=>表单并检查令牌是否相同。 很少有事情需要注意,如果有Ajax请求,那么其他一些令牌必须在许多请求中处于活动状态。 如果用户决定关闭浏览器,则当会话超时时,令牌将不得不死亡。 如果用户未能完成表单,则在网站上执行其他操作,则必须在未使用时删除这些令牌。 但实现这样的系统的最佳方法是什么, Spring Security 3有一个我可以使用的系统吗? 在Java,Grails,Spring MVC,Spring Security 3和Hibernate领域

Spring @Secured和@PreAuthorize对普通(非Web)应用程序没有任何影响

我用两个安全的方法创建了一个Application Spring组件: @Component public class Application { public void run() { onlyAdminMethod(); onlyAdminMethod2(); } @Secured( “ROLE_ADMIN” ) public void onlyAdminMethod() { System.out.println( “Admin-only method called” ); } @PreAuthorize( “hasRole(‘ROLE_ADMIN’)” ) public void onlyAdminMethod2() { System.out.println( “Admin-only method 2 called” ); } } 我在该bean上调用run()方法,我从Spring XML上下文中获取: ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”); context.getBean( Application.class).run(); 没有发生 –即使没有身份validation和SecurityContextHolder.getContext().getAuthentication() 方法也会正常调用 SecurityContextHolder.getContext().getAuthentication()返回null […]

Spring Security:AccessDecisionVoter

@Service public class MyVoter implements AccessDecisionVoter { @Override public boolean supports(ConfigAttribute attribute) { boolean myBool = false; return myBool; } @Override public boolean supports(Class clazz) { return clazz == Project.class; } @Override public int vote(Authentication authentication, Entity someEntity, Collection config) { return ACCESS_GRANTED; } } 你能解释一下,第一个支持方法应该如何工作? 无论我如何更改myBool,都会调用vote-method。 似乎只支持(Class clazz)对invokation有影响。 有任何想法吗? 编辑: @Configuration @EnableWebMvcSecurity public class […]

尝试在spring应用程序中获取OAuth2访问令牌时找不到404 404

我正在尝试创建一个Web应用程序,我们可以通过调用一些http基本请求来获取“密码”授权类型中的访问令牌 例如 我打电话的时候 HTTP://本地主机:8080 / demo4ssh-安全的oauth2 /的OAuth /令牌的client_id = mobile_1&client_secret = secret_1&grant_type =密码&用户名=张三&密码= 123456? 我可以得到以下令牌 {“access_token”:”4219a91f-45d5-4a07-9e8e-3acbadd0c23e”,”token_type”:”bearer”,”refresh_token”:”d41df9fd-3d36-4a20-b0b7-1a1883c7439d”,”expires_in”:43199,”scope”:”read write trust”} 但是我的令牌网站总是返回404.我尝试在网上进行一些搜索,但仍然没有帮助… 这是我的代码: web.xml中 contextConfigLocation /WEB-INF/security-context.xml org.springframework.web.context.ContextLoaderListener springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* user-dispatcher org.springframework.web.servlet.DispatcherServlet 1 安全的context.xml 我的控制器类 @Controller @RequestMapping(“/operation”) public class UserOperationController { private static final Logger logger = Logger.getLogger(UserOperationController.class); @RequestMapping(“/Login”) public ModelAndView home() { return new ModelAndView(“login”); } […]

URLEncoder.encode(字符串,“UTF-8”)validation不好吗?

在我的J2EE / Java代码的一部分中,我对getRequestURI()的输出执行URLEncoding以清理它以防止XSS攻击,但Fortify SCA认为validation不良。 为什么?

JBoss 7.1基于数据库的JAAS身份validation – 身份validation失败

我试图在JBoss 7.1应用程序服务器上实现基于数据库的JAAS身份validation,但得到以下错误。 任何指针都会有所帮助。 我已经分享了配置细节。 14:46:03,807 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule](http-localhost / 127.0.0.1:8080-2)获取用户密码 14:46:03,808 DEBUG [org.jboss.jca.core。 connectionmanager.pool.strategy.OnePool](http-localhost / 127.0.0.1:8080-2)AppDS:returnConnection(40c2d8ac,false)[1/9] 14:46:03,808 TRACE [org.jboss.security.auth.spi .DatabaseServerLoginModule](http-localhost / 127.0.0.1:8080-2)resumeAnyTransaction 14:46:03,808 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule](http-localhost / 127.0.0.1:8080-2) 用户’test_user’已通过validation,loginOk = true 14:46:03,808 TRACE [org.jboss.security.auth.spi.DatabaseServerLoginModule](http-localhost / 127.0.0.1:8080-2)abort 14:46:03,809 ERROR [org。 jboss.security.authentication.JBossCachedAuthenticationManager](http-localhost / 127.0.0.1:8080-2) 登录失败:javax.security.auth.login.FailedLoginException:密码不正确/密码在 org.jboss.security.auth.spi中是必需的 。 UsernamePasswordLoginModule.login(UsernamePasswordLogin 在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)[rt.jar:1.7。 0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)[rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)[rt.jar:1.7.0_25] at java.lang.reflect .Method.invoke(未知来源)[rt.jar:1.7.0_25] […]

将证书密钥库迁移到另一个JVM

我正在开发一个需要JRE的安装程序并创建证书。 我正在研究捆绑新JRE的下一版安装程序。 我需要将旧JRE的cacerts密钥库中导入的所有证书移动到新的JRE。 如果我将旧的jre / lib / security /目录下的“cacerts”文件复制到新的JRE,那么cacerts中的现有证书是否有效,我将进行安装。 我看了一下问题: “是否可以将cacerts的所有内容导入jssecacerts文件?” 将证书导入我的密钥库。 这是否意味着如果通过复制cacerts的密钥库迁移不起作用,我需要备份现有的jre / lib / security / cacerts并将其导入新的JRE?

单一登录以保护REST API和基于Web的内部系统

我需要一些关于如何使用单一身份validation系统保护REST API和基于Web的内部系统的建议。 我正在研究使用的可能性: oAuth 2.0 JA-SIG CAS 自定义实现(实现两个独立的API) 保护REST API并将调用重定向到特定的API实例 validationWeb应用程序用户。

在JBoss / JAAS中使用HTTP Request.login

我已经成功设置了JBoss安全域,并且可以使用BASIC身份validation进行身份validation(如web.xml中所定义)。 这一切都运作良好。 但我无法弄清楚如何使用http request.login方法。 以下安全域(来自jboss-web.xml)适用于BASIC身份validation: /myapp java:/jaas/myapp-realm 但是当我使用request.login时如下: public void login() { FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest(); try { request.login(username, password); } catch (ServletException ex) { java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(Level.SEVERE, null, ex); } } 我得到以下exception: javax.servlet.ServletException: Failed to authenticate a principal 我知道用户名/密码很好(使用BASIC auth工作正常)。 我有TRACE级别登录,看起来甚至没有尝试进行身份validation。 我错过了什么? 如果您需要有关我的setup / config的更多详细信息,请参阅http://java-web-development.blogspot.com/2011/07/jee-6-security-part-two-implementation.html 。 我正在使用JBoss 6。