认证base64
我正在使用 Spring roo 开发一个应用程序。 作为暗示 Spring 安全性的第一个身份验证测试,我对数据库中的表使用了身份验证。工作正常:
<authentication-manager alias="authenticationManager">
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from users where username=?"/>
</authentication-provider>
</authentication-manager>
现在事情变得更具挑战性(对我来说),因为“真实”(在生产环境中)用户表中的密码是加密的,我必须首先使用哈希函数 md5,然后再使用 base64 编码作为 iso 来处理特殊字符。
我必须创建一个自定义 jdbc-user-service。处理这些操作的最佳实践是什么?
I am developping an application with Spring roo.
As a first authentication test implying Spring security I used authentication against a table in my database. That work fine :
<authentication-manager alias="authenticationManager">
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from users where username=?"/>
</authentication-provider>
</authentication-manager>
Now things get a little more challenging (for me) because the password in the "real" (in the production env) user table is encrypted, I have to first use the hash function md5 and then the base64 encoding as well as iso to deal with special characters.
I have to create a custom jdbc-user-service. What would be the best practices to deal with those operations ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
按照建议,我设法通过身份验证中的 Spring security 构建解决了问题。
我首先将 security-context.xml 的编码设置为 ISO-8859-1,
然后使用:
As suggested, I managed to solve the problem with Spring security build in authentification.
I had first to set the encoding of the security-context.xml to ISO-8859-1
then use :
要做的第一件事是创建一个自定义密码编码器,这将使我能够更好地控制身份验证过程。
在applicationContext-Security.xml中
创建自定义类
公共类 SnatiPasswordEncoder 实现 PasswordEncoder {
<前><代码>@Override
公共字符串encodePassword(字符串arg0,对象arg1)
抛出数据访问异常 {
// TODO 自动生成的方法存根
返回空值;
}
@覆盖
公共布尔 isPasswordValid(字符串 arg0,字符串 arg1,对象 arg2)
抛出数据访问异常 {
// TODO 自动生成的方法存根
返回假;
}
/**
* @参数参数
*/
公共静态无效主(字符串[] args){
// TODO 自动生成的方法存根
}
}
接下来应该做什么?
The first thing to do is the create a custom password-encoder that will allow me more controle over the authentication process.
In the applicationContext-Security.xml
Create the custom class
public class SnatiPasswordEncoder implements PasswordEncoder {
}
What should come next ?