Tag: spring security

Spring中会话过期的监听器

我是Spring的新手,并将其用于身份validation。 我遇到一个问题,当浏览器关闭或者在任何exception失败的情况下会话到期但我无法捕获事件以便执行清理代码。 我探索它并在Spring中发现HttpSessionEventPublisher在sessionDestroyed()方法中捕获HttpSessionDestroyedEvent ,但是当我关闭浏览器时不会调用它。 请求建议相同的解决方案。

spring security logout导致NullPointerException

我一直试图了解弹簧安全性一段时间,除了logout方面,我已经解决了大部分问题。 通过关于SO的其他问题,我觉得他们中的大多数都面临与会话无关的问题。 另一方面,我面临着相当不同的麻烦。 我的安全XML文件配置如下: 在我的web.xml我已经将login controller映射到上下文根[使用welcome-file列表],并且还具有所需的springSecurityFilterChain设置。 现在登录操作运行完美。 目标JSP具有注销链接: <a href="https://stackoverflow.com/questions/7325655/spring-security-logout-causes-nullpointerexception/”>Logout 但是,每当我点击注销链接时,我都会遇到可怕的NullPointerException 。 如果我在这里犯了一些明显的错误,有人能告诉我吗? exception堆栈: java.lang.NullPointerException at java.util.Hashtable.get(Hashtable.java:334) at org.apache.tomcat.util.http.Parameters.getParameterValues(Parameters.java:116) at org.apache.tomcat.util.http.Parameters.getParameter(Parameters.java:127) at org.apache.catalina.connector.Request.getParameter(Request.java:1133) at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:384) at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:140) at org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler.determineTargetUrl(AbstractAuthenticationTargetUrlRequestHandler.java:86) at org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler.handle(AbstractAuthenticationTargetUrlRequestHandler.java:67) at org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler.onLogoutSuccess(SimpleUrlLogoutSuccessHandler.java:28) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:100) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 感谢您抽出宝贵的时间。

将Spring Security JspTagLib添加到Freemarker模板 – 控制器unit testing问题

我已经将spring jsp security taglib添加到freemarker模板,因为我使用freemarker来查看我的web应用程序而不是jsps。 对于任何搜索如何进行设置的人,我发现添加弹簧库以便在Freemarker中使用JSP Taglibs以获得安全性是一个非常有用的问题。 总之,将以下内容添加到您希望使用标记的* .ftl文件中: 然后假设您正在使用maven将以下内容添加到您的pom.xml: org.springframework.security spring-security-taglibs ${spring.security.version} 一旦我设置了它,我运行我的弹簧控制器unit testing,他们都失败了。 问题是他们需要el-api.jar和jsp-api.jar来解决如何呈现Jsp标签。 它们作为Web应用程序运行的容器(tomcat)的一部分包含在内,因此应用程序的正常运行不需要它们。 所以我在测试范围内添加了这些作为maven依赖项。 javax.el el-api 2.2 test javax.servlet jsp-api 2.0 test 通过这个修复我的测试也抛出了一个错误,他们无法找到.tld文件的映射,即使它在你添加spring-security-taglibs maven依赖项时包含它。 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is freemarker.template.TemplateModelException: No mapping defined for http://www.springframework.org/security/tags The failing instruction (print stack trace for 2 more): ==> #assign security = JspTaglibs[“http:/… [in […]

在用户三次错误尝试后显示validation码

我正在开发一个应用程序,如果N次尝试失败,我需要在某些地方引入validation码。 这些地方可以注册,登录,添加到心​​愿单,订阅等。这也是为了确保任何人都不能尝试拒绝服务攻击和暴力攻击。 Spring Security中是否有这样的机制?

Spring Security通过并发登录尝试来锁定用户

我是安全新手,遇到了导致用户帐户被锁定的问题,只有应用程序重新启动才能修复它。 我有一个弹簧启动(1.3.0.BUILD-SNAPSHOT)与弹簧安全(4.0.2.RELEASE)应用程序,我试图控制并发会话策略,以便用户只能有一个登录。 它正确检测来自其他浏览器的后续登录尝试并阻止它。 但是,我注意到一些我似乎无法追查的奇怪行为: 用户可以在同一浏览器中对两个选项卡进行身份validation。 我无法使用三个标签登录,但有两个标签。 退出一个似乎注销两者。 我看到cookie的值是一样的,所以我猜他们正在共享一个会话: 表1 JSESSIONID: DA7C3EF29D55297183AF5A9BEBEF191F &941135CEBFA92C3912ADDC1DE41CFE9A 表2 JSESSIONID: DA7C3EF29D55297183AF5A9BEBEF191F &48C17A19B2560EAB8EC3FDF51B179AAE 第二次登录尝试会显示以下日志消息,这些消息似乎表示第二次登录尝试(我通过Spring-Security源步进来validation: osswaiFilterSecurityInterceptor : Secure object: FilterInvocation: URL: /loginPage; Attributes: [permitAll] osswaiFilterSecurityInterceptor : Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@754041c8: Principal: User [username=xxx@xxx.xx, password= ]; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 4708D404F64EE758662B2B308F36FFAC; Granted Authorities: Owner ossaccess.vote.AffirmativeBased : Voter: org.springframework.security.web.access.expression.WebExpressionVoter@17527bbe, returned: 1 […]

如何使用DaoAuthenticationProvider以编程方式使用Spring Security对用户进行身份validation

我想知道我在这里做错了什么来validation用户。 我有一个应用程序,其中用户通过几个步骤来激活他们的帐户,并且在这样做时,我想绕过登录表单并将它们直接带到他们的仪表板。 这是我的自动登录function: protected void automatedLogin(String username, String password, HttpServletRequest request) { try { // Must be called from request filtered by Spring Security, otherwise SecurityContextHolder is not updated CustomUserDetailsService udService = new CustomUserDetailsService(userDAO, request); UserDetails uDetails = udService.loadUserByUsername(username); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(uDetails, password); token.setDetails(new WebAuthenticationDetails(request)); DaoAuthenticationProvider authenticator = new DaoAuthenticationProvider(); Authentication authentication = […]

从spring-security 中检索当前用户的密码

我正在使用带有HTTP Basic Auth的spring-security来保护java webapp。 在我的webapp中,我需要获取当前用户的用户名和密码,以进一步针对其他服务进行身份validation。 我可以获取用户名,但不能获取密码。 我已尝试使用SecurityContextHolder.getContext().getAuthentication()来访问此处建议的信息如何从spring-security获取明文密码? 但密码返回null 。 我怎样才能获得密码? 谢谢。 这是我的applicationContext-security.xml

Spring Boot ConflictingBeanDefinitionException:@Controller类的注释指定bean名称

我一直在Spring启动应用程序中收到ConflictingBeanDefinitionException错误。 我不完全确定如何解决它,我有几个@Configuration注释类帮助建立Thymeleaf,Spring Security和Web。 为什么应用程序试图设置homeController两次? (它在哪里尝试这样做?) 错误是: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [org.kemri.wellcome.hie.Application]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘homeController’ for bean class [org.kemri.wellcome.hie.HomeController] conflicts with existing, non-compatible bean definition of same name and class [org.kemri.wellcome.hie.controller.HomeController] 我的spring boot主应用程序初始化程序: @EnableScheduling @EnableAspectJAutoProxy @EnableCaching @Configuration @ComponentScan @EnableAutoConfiguration public class Application extends SpringBootServletInitializer { public static void main(String[] […]

Spring Boot OAuth2在1.4.1版上无法正常运行

我在Spring OAuth2上使用Spring Boot 1.4.0。 当我请求令牌时,服务器响应是: { “access_token”: “93f8693a-22d2-4139-a4ea-d787f2630f04”, “token_type”: “bearer”, “refresh_token”: “2800ea24-bb4a-4a01-ba87-2d114c1a2235”, “expires_in”: 899, “scope”: “read write” } 当我将项目更新到Spring Boot 1.4.1时,服务器响应变为 { “error”: “invalid_client”, “error_description”: “Bad client credentials” } 什么从版本1.4.0更改为1.4.1? 我应该怎样做才能让我的请求再次发挥作用? 编辑 WebSecurityConfiguration: @Configuration @EnableWebSecurity public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter{ /** The client details service. */ @Autowired private ClientDetailsService clientDetailsService; /** The password encoder. */ […]

Spring MVC – 上传文件被spring security 阻止

我正在尝试上传文件。 它适用于我,但如果我想使用上传文件它不起作用。 我收到了这个错误 HTTP Status 405 – Request method ‘POST’ not supported 但是,如果我在web.xml中对这些行进行注释,它可以工作 springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /* 我试图添加此配置,但它没有帮助 springMultipartFilter springMultipartFilter org.springframework.web.multipart.support.MultipartFilter springMultipartFilter /* 这是我的所有web.xml contextConfigLocation /WEB-INF/spring/root-context.xml, /WEB-INF/spring-security.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServlet / encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter / springMultipartFilter springMultipartFilter org.springframework.web.multipart.support.MultipartFilter springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springMultipartFilter /* springSecurityFilterChain /* 你知道哪里可能有问题吗? 我正在使用这些版本的弹簧和弹簧安全性: 4.0.4.RELEASE […]