我为我的spring应用程序创建了自己的身份验证提供程序,我在其上指定了org.springframework.security.crypto.password.PasswordEncoder
。我的用户使用加密密码存储在数据库中(在数据库算法之后)。为了能够进行身份验证,我需要从org.springframework.security.crypto.password.PasswordEncoder
类访问发送用于身份验证的用户名。任何人都可以指导我如何做到这一点?或者还有其他方法吗?
N.B。我正在使用 SpringSecurity 3.2。
答案 0 :(得分:1)
我什至都不在乎这是一个老问题,我花了9个小时试图弄清楚这个问题。最好把它留在这里,以防其他人再次发现它。
String username = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("username");
使用上面的代码,我能够从当前请求中提取用户名。
注意:您必须使用以下类org.springframework.web.context.request.RequestContextHolder
有一个类似的地方让我做错了。
答案 1 :(得分:0)
假设User Entered UserName,UserPassword是User,Pwd。 要进行身份验证,您可以执行以下操作。
String encodedPassword=passwordEncoder.encode(pwd);