Tag: authentication

过滤涉及安全约束的请求

我有一个Java Web应用程序,它使用安全约束来锁定对资源的访问。 我正在尝试在Ajax请求需要身份validation时操纵HTTP 401响应,因此我创建了一个filter,用于在响应中观察HTTP状态并在需要时相应地修改它。 问题是,似乎如果需要身份validation,则在将401发送到浏览器之后才会调用filter。 似乎安全约束在请求处理链中的filter之前。 我的filter的url-pattern比任何安全约束更通用。 平台是WebSphere。 我无法看到Servlet 2.5规范中指定了安全性约束和filter的优先级。 我错过了什么吗?

如何使用Spring Security提供多种身份validation方式

我从各种资源中了解了Spring Security,我知道filter和身份validation管理器是如何分开工作的,但我不确定请求与它们一起工作的确切顺序。 如果我没有错,简而言之,请求首先通过filter,filter调用各自的身份validation管理器。 我想允许两种身份validation – 一种使用JWT令牌,另一种使用用户名和密码。 以下是security.xml的摘录 security.xml文件 MyAuthenticationProvider.java public class MyAuthenticationProvider implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { // Code } @Override public boolean supports(Class authentication) { return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication)); } } TokenAuthenticationFilter.java public class TokenAuthenticationFilter extends AbstractAuthenticationProcessingFilter{ protected TokenAuthenticationFilter(String defaultFilterProcessesUrl) { super(defaultFilterProcessesUrl); //defaultFilterProcessesUrl – specified in applicationContext.xml. super.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(defaultFilterProcessesUrl)); //Authentication […]

如何在SNMP4J中使用非对称密钥或证书身份validation?

我正在开发一个项目,希望能够使用证书或密钥作为SNMPv3的身份validation方法。 我们正在使用java库SNMP4J 。 在我的研究过程中,我发现SNMP使用TLS / DTLS进行消息加密,并且据称也用于身份validation。 来源1 | 来源2 | 来源3 查看SNMP4J的小文档,我发现它允许使用TLS证书加密流量。 但我不确定如何使用公钥/私钥对进行身份validation。 TLS流量加密示例 | SNMP4J文档 任何帮助,将不胜感激。

私钥和密钥库中签名证书之间的链接

我正在做jetty SSL configuration 。 我使用keytool创建了CSR,它已经为密钥库添加了一个私钥, 收到基于CSR的证书,将证书转换为DER格式,并将证书作为trustcacerts导入密钥库 签名证书在证书路径中具有根/中间证书 在将其转换为DER格式后,我还在受信任的根证书下的IE中安装了根证书和中间证书。 使用https时,浏览器显示证书错误并将证书视为自签名证书。 题 这是否意味着由于证书在证书路径中没有Root / intermediate证书,因此不考虑已安装的签名证书? 虽然从CA收到的签名证书具有指向证书路径中的根/中间证书的链接。 如果在此过程中出现任何问题,请提出建议。 为此添加keytool命令。 创建密钥库 keytool -keystore serverdns.keystore -alias server -genkey -keyalg RSA -keysize 2048 创建CSR keytool -certreq -alias server -keystore serverdns.keystore -file server.csr 安装签名证书 keytool -import -trustcacerts -alias cert -keystore serverdns.keystore -file signedcert.der.cer 我在安装签名证书时尝试使用相同的别名’server’,但它失败并出现错误 keytool错误:java.lang.Exception:无法从回复建立链

Spring SecurityContext在错误页面上返回null身份validation

我正在尝试为403(拒绝访问)和500(内部服务器错误)等错误编写自定义错误页面。 它们将从Velocity模板呈现,并使用用户的语言环境翻译所有消息。 身份validation和区域设置解析在应用程序中正常工作。 我在web.xml中设置了所需页面的位置,在webmvc-context.xml中我添加了requet-to-view controller via。 我遇到的问题是SecurityContextHolder.getContext()。getAuthentication()在错误页面视图中返回null。 看着我看到的日志: 06.10 14:42:26 DEBUG – context.HttpSessionSecurityContextRepository(HttpSessionSecurityContextRepository.java:351) – – SecurityContext stored to HttpSession: ‘org.springframework.security.core.context.SecurityContextImpl@ece7b0b7: Authentication: … 06.10 14:42:26 DEBUG – context.SecurityContextPersistenceFilter(SecurityContextPersistenceFilter.java:89) – – SecurityContextHolder now cleared, as request processing completed 06.10 14:42:26 DEBUG – servlet.DispatcherServlet(DispatcherServlet.java:691) – – DispatcherServlet with name ‘foo’ processing GET request for [/foo/app/error/403.html] 因此,无论是Spring还是Tomcat重定向到错误页面并且请求都已完成,因此上下文被清除。 并且新的“请求”不会经历Spring Securityfilter,因此无法恢复上下文。 […]

如何在Spring中为系统用户validation计划进程?

我们有一个Quartz / Spring Batch作业,为了审计日志记录的目的,我们希望将它作为系统用户进行“身份validation”。 我们的一些方法依赖于获取SecurityContext来执行此操作。 运行此作业的方式是可信的(或经过身份validation)。 我们不想实际使用密码或其他令牌(因为该过程基本上总是由石英生成)。 我试过这个 private void authenticate() { UserDetails admin = userDetailsService.loadUserByUsername( “admin” ); RunAsUserToken token = new RunAsUserToken( UUID.randomUUID().toString(), admin, admin.getAuthorities(), null , null ); Authentication user = authenticationManager.authenticate( token ); if ( user.isAuthenticated() ) { SecurityContext sc = new SecurityContextImpl(); sc.setAuthentication( user ); SecurityContextHolder.setContext( sc ); } } 但它导致了 […]

Java SSO:针对Active Directory的Kerberos身份validation

我仍在尝试为SSO(在* nix上运行)找到基于Java的解决方案,我可以在JBoss上使用它来针对Active Directory /域控制器进行授权。 我最初尝试通过NTLM执行此操作,但放弃了因为它在Windows Server> = 2008上不受支持。 因此,我正在尝试使用Kerberos实现此function,但似乎无法找到正确/可行的解决方案。 请指出正确的方向,说明如何设置这样的配置,如何validationActive Directory和/或域控制器,以便: 找出该帐户是否有效 获取用户的组列表 任何帮助表示赞赏! UPDATE 我正在使用jcifs-ext-0.9.4和jcifs-krb5-1.3.12开发解决方案。 我按如下所述设置了web.xml: auth jcifs.http.AuthenticationFilter java.security.auth.login.config /WEB-INF/login.conf jcifs.spnego.servicePrincipal HTTP/testconn@mydomain.com jcifs.spnego.servicePassword supersecret sun.security.krb5.debug true java.security.krb5.realm mydomain.com java.security.krb5.kdc testdom01.mydomain.com jcifs.smb.client.domain TESTDOMAIN jcifs.http.enableNegotiate true jcifs.http.basicRealm mydomain.com jcifs.http.domainController testdom01.mydomain.com auth /* 如果尝试访问应用程序,这会导致以下堆栈跟踪: 2010-07-22 15:53:10,588 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/google].[default]] Servlet.service() for servlet default threw exception java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native […]

RestTemplate与pem证书

我有私钥和服务器证书的pem证书。 我可以使用curl执行它,一切正常。 curl -O -k –cert-type pem –cert mypem.pem url 但是我希望将它与java一起使用,最好是从Spring开始使用RestTemplate。

我应该同时使用SocialAuthenticationFilter和ProviderSignInController吗?

简而言之 使用ProviderSigninController时不会触发身份validation事件。 如何使用完整的Spring安全集成? 长版 据我所知,我有一个function性的Spring-social设置如下: ProviderSignInController设置为创建社交连接,并在新用户出现时自动配置用户帐户。 我使用SignInAdapter,如记录的示例所示, 我还使用UserDetailsS​​ervice定期进行基于spring-security的身份validation服务。 但是,我看到的一个区别是社交身份validation登录不会引发任何* AuthenticationEvents。 这些事件由常规帐户的filter引发。 我想知道 – 我错过了这种整合的一部分吗? 。 看起来有点脆弱,不通过SocialAuthenticationFilter,只需手动设置auth上下文。 我想要一个记录认证事件的中心位置。

Spring Security,表单登录和并发会话

我试图限制用户多次签名(强制前一个会话到期)。 我在这里查看了有关该主题的文档。 我将其设置为非常类似于文档,但用户一次不限于一个会话。 我可以使用同一个用户多次登录(在不同的浏览器中)并且有多个并发会话。 以下是我认为是我的安全设置的相关内容。 我正在使用自定义UserDetailsS​​ervice,UserDetails和AuthenticationFilter实现。 […] 我还在我的web.xml文件中注册了org.springframework.security.web.session.HttpSessionEventPublisher作为监听器。 据我所知,我根据文档配置了这个。 我不知道为什么这不起作用。 它是否与我使用基于表单的登录这一事实有关? 或者我上面提到的自定义实现?