spring security关于验证码的问题

问题描述

流程是这样的:1,登录表单里加入了验证码,并把验证码存入session。2,表单提交时用js对 password+验证码 进行md5加密3,spring security开始认证,从数据库获取userDetails(数据库里密码为明文)这样前台是 md5(密码+验证码),后台也需要是这种形式问题是,我如何把session中的验证码绑定到userDetails中的password上?不知道在获取userDetails时,在什么地方能从session中取值?

解决方案

楼上书托!你的需求有问题,验证码+pwd加密以后提交到后台,后台无法获得验证码的原始值。除非把验证码以明码的方式提交到后台。另外,用js加密本身就是极其不安全的。验证码的使用建议参考springside-1.0或者2.0(2.0不知有没有),不过它用的是acegi,如果你们用spring security还得自己改。如果一定要按照你的思路走,可以尝试:UserDetails是一个pojo,无法直接获得session,验证码也不应该存在session中,应该放在request里面。这个验证的工作应该在UserDetailsService中进行。土一点的办法是吧验证码从request中取出,放在ThreadLocal中,然后在UserDetailsService中bind userdetails
解决方案二:
推荐看看李刚的 struts2权威指南。那本书里有关于验证码的解决方法。

时间: 2024-09-07 10:53:59

spring security关于验证码的问题的相关文章

Spring Security实现动态权限管理

我所理解的动态权限就是RBAC(Role-Based Access Control). 就是可以自定义角色,配置角色可以访问哪些URL.然后给不同的角色设置不同的角色. 为什么用Spring Security?听说Spring Security是基于Shiro的.Shiro没用过.之所以用Spring Security是因为它安全.废话!是因为可以帮你防御csrf等攻击.其实现在的Chrome浏览器的同源策略已经很不错了,想csrf也没那么容易.Spring Security能防住多少我也不知道

Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Security文档的说明: ------------------ auto-config Automatically registers a login form, BASIC authentication, logout services. If set to "true", all of thes

Spring Security 2配置精讲 上

安全权限管理手册 http://www.family168.com/oa/springsecurity/html/ 众所周知,Spring Security针对Acegi的一个重大的改进就在于其配置方式大大简化了.所以如果配置还是基于Acegi-1.X这样比较繁琐的配置方式的话,那么我们还不如直接使用Acegi而不要去升级了.所以在这里,我将结合一个示例,重点讨论一下Spring Security 2是如何进行配置简化的. 搭建基础环境 首先我们为示例搭建基本的开发环境,环境的搭建方式,可以参考

Spring Security OAuth2实现使用JWT

1.概括 在博客中,我们将讨论如何让Spring Security OAuth2实现使用JSON Web Tokens. 2.Maven 配置 首先,我们需要在我们的pom.xml中添加spring-security-jwt依赖项. <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-jwt</artifactId> &l

Spring Security 4.0.0.RC2/3.2.6 发布

Spring Security 4.0.0.RC2 发布,此版本解决了大约 50 tickets. 主要改进: Support for enforcing Same Origin for WebSocket connections Refinements in WebSocket Configuration (SEC-2827 SEC-2833 SEC-2853 ) More intuitive HTTP Response Headers Configuration (SEC-2846) GA

spring security启动异常,求大神来指点下

问题描述 SSH想加上spring security,搞了几天都没搞出来,哪位大神来指点下  WEB.XML配置 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation<

spring security oauth2

  https://connect.qq.com/manage.html#/   Spring Boot Oauth2 with H2 databasehttps://github.com/rajithd/spring-boot-oauth2 使用oauth2.0写的简单的client和认证Server,使用了@EnableOAuth2Sso注解来模拟单点登陆https://github.com/jiangchao123/oauthserver Spring-Boot projects usin

Spring Boot中集成Spring Security 专题

if语句中条件判断就是检查当前的url请求是否是logout-url的配置值,接下来,获取用户的authentication,并循环调用处理器链中各个处理器的logout()函数,前面在parse阶段说过,处理器链中有两个实例,处理会话的SecurityContextLogoutHandler及remember-me服务,我们来一一看看它们的logout函数实现: 2.1.0 SecurityContextLogoutHandler public void logout(HttpServletR

Spring Security 入门详解(转)

1.Spring Security介绍 Spring Security是基于spring的应用程序提供声明式安全保护的安全性框架,它提供了完整的安全性解决方案,能够在web请求级别和方法调用级别 处理身份证验证和授权.它充分使用了依赖注入和面向切面的技术. Spring security主要是从两个方面解决安全性问题: web请求级别:使用servlet过滤器保护web请求并限制URL级别的访问 方法调用级别:使用Spring AOP保护方法调用,确保具有适当权限的用户采用访问安全保护的方法.